# PLaSK User Manual

#### Page Contents

- Physical objects 3D

# Physical objects 3D

Physical objects are the leafs of the geometry tree. They represent actual objects that have some shape and defined material.

<block3D/> (or <block/>)

  Corresponding Python class: `plask.geometry.Block3D`.

  Rectangular block. Its origin is located in the lower back left corner.

  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.

    - material – Definition of the block material (for solid blocks).

    - material-bottom – Definition of the material of the bottom of the block (for blocks with material changing from bottom to top). You should also set `material-top` and both materials can differs only in composition or amount of dopant.

    - material-top – Definition of the material of top of the block (see also `material-bottom`).

    - material-shape – Exponent for graded materials. Setting this value to anything different than one allows non-linear change the block material.

    - d{X} (`required`) – where {X} is the longitudinal axis name: Longitudinal dimension of the cuboid. (float, µm)

    - d{Y} (`required`) – where {Y} is the transverse axis name: Transversal dimension of the cuboid. (float, µm)

    - d{Z} (`required`) – where {Z} is the vertical axis name: Vertical dimension of the cuboid. (float, µm)

    - depth – Alias for `d{X}`.

    - width – Alias for `d{Y}`.

    - height – Alias for `d{Z}`.

    - angle – Rotation angle in the horizontal (longitudinal-vertical) plane [deg]. This rotates the cuboid horizontally, so the longitudinal and transverse dimensions are no longer along the axes, but correspond to the object sides.

    - steps-num – Maximum number of the mesh steps in each direction the object is divided into if it is non-uniform.

    - steps-dist – Minimum step size if the object is non-uniform.

  Either `material` or both `material-top` and `material-bottom` are required.

<cuboid/>

  Alias for `<block3d/>`.

<cylinder/>

  Corresponding Python class: `plask.geometry.Cylinder`.

  Cylinder with its base lying in the horizontal plane. Its origin is located at the center of the lower circular base.

  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.

    - material – Definition of the cylinder material (for solid cylinders).

    - material-bottom – Definition of the material of the bottom of the cylinder (for cylinders with material changing from bottom to top). You should also set `material-top` and both materials can differs only in composition or amount of dopant.

    - material-top – Definition of the material of top of the cylinder (see also `material-bottom`).

    - material-shape – Exponent for graded materials. Setting this value to anything different than one allows non-linear change the cylinder material.

    - radius (`required`) – Radius of the cylinder base.

    - height (`required`) – Height of the cylinder.

    - steps-num – Maximum number of the mesh steps in each direction the object is divided into if it is non-uniform.

    - steps-dist – Minimum step size if the object is non-uniform.

<elliptic-cylinder/>

  Corresponding Python class: `plask.geometry.EllipticCylinder`.

  Elliptic cylinder with its base lying in the horizontal plane. Its origin is located at the center of the lower circular base.

  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.

    - material-bottom – Definition of the material of the bottom of the cylinder (for ellipses with material changing from bottom to top). You should also set `material-top` and both materials can differs only in composition or amount of dopant.

    - material-top – Definition of the material of top of the cylinder (see also `material-bottom`).

    - material-shape – Exponent for graded materials. Setting this value to anything different than one allows non-linear change the cylinder material.

    - radius0 (`required`) – Radius of the base ellipse in transverse direction. (float, µm)

    - radius1 (`required`) – Radius of the base ellipse in vertical direction. (float, µm)

    - angle – Rotation angle in the horizontal (longitudinal-transverse) plane. This rotates the ellipse horizontally, so the longitudinal and transverse dimensions are no longer along the axes, but correspond to the object sides. (float, deg)

    - height (`required`) – Height of the cylinder.

    - steps-num – Maximum number of the mesh steps in each direction the object is divided into if it is non-uniform.

    - steps-dist – Minimum step size if the object is non-uniform.

<prism/>

  Corresponding Python class: `plask.geometry.Prism`.

  Prism with base defined by a with vertices at specified lateral points.

  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.

    - material-bottom – Definition of the material of the bottom of the polygon (for polygons with material changing from bottom to top). You should also set `material-top` and both materials can differs only in composition or amount of dopant.

    - material-top – Definition of the material of top of the polygon (see also `material-bottom`).

    - material-shape – Exponent for graded materials. Setting this value to anything different than one allows non-linear change the polygon material.

    - height (`required`) – Prism height in the vertical direction. (float, µm)

    - steps-num – Maximum number of the mesh steps in each direction the object is divided into if it is non-uniform.

    - steps-dist – Minimum step size if the object is non-uniform.

  Contents:

    Polygon base longitudinal and transverse vertices separated by semicolons. Each vertex is defined by two coordinates separated by space.

  Example:

      <cartesian3d name="example" axes="xyz">
        <prism height="2" material="GaAs"> -2 -2; -2 3; 2 3; 2 -2 </prism>
      </cartesian3d>

<sphere/> (or <circle3d/>)

  Corresponding Python class: `plask.geometry.Sphere`.

  Sphere with centre at point (0, 0, 0).

  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.

    - material – Definition of the sphere material (for solid triangles).

    - material-bottom – Definition of the material of the bottom of the sphere (for spheres with material changing from bottom to top). You should also set `material-top` and both materials can differs only in composition or amount of dopant.

    - material-top – Definition of the material of top of the sphere (see also `material-bottom`).

    - material-shape – Exponent for graded materials. Setting this value to anything different than one allows non-linear change the sphere material.

    - radius (`required`) – Radius of the sphere. (float, µm)

    - steps-num – Maximum number of the mesh steps in each direction the object is divided into if it is non-uniform.

    - steps-dist – Minimum step size if the object is non-uniform.

<triangular-prism/>

  Corresponding Python class: `plask.geometry.TriangularPrism`.

  Prism with triangular base having one vertex at point (0, 0, 0) and specified height.

  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.

    - material – Definition of the triangle material (for solid triangles).

    - material-bottom – Definition of the material of the bottom of the triangle (for triangles with material changing from bottom to top). You should also set `material-top` and both materials can differs only in composition or amount of dopant.

    - material-top – Definition of the material of top of the triangle (see also `material-bottom`).

    - material-shape – Exponent for graded materials. Setting this value to anything different than one allows non-linear change the triangle material.

    - a{X} (`required`) – where {X} is the longitudinal axis name: Coordinate of the first base triangle vertex. (float, µm)

    - a{Y} (`required`) – where {Y} is the transverse axis name: Coordinate of the first base triangle vertex. (float, µm)

    - b{X} (`required`) – where {X} is the longitudinal axis name: Coordinate of the second base triangle vertex. (float, µm)

    - b{Y} (`required`) – where {Y} is the transverse axis name: Coordinate of the second base triangle vertex. (float, µm)

    - height (`required`) – Prism height in the vertical direction. (float, µm)

    - steps-num – Maximum number of the mesh steps in each direction the object is divided into if it is non-uniform.

    - steps-dist – Minimum step size if the object is non-uniform.

<tube/>

  Corresponding Python class: `plask.geometry.Tube`.

  Tube (i.e. hollow tube) with its base lying in the horizontal plane. Its origin is located at the center of the lower circular base.

  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.

    - material – Definition of the tube material (for solid tubes).

    - material-bottom – Definition of the material of the bottom of the tube (for tubes with material changing from bottom to top). You should also set `material-top` and both materials can differs only in composition or amount of dopant.

    - material-top – Definition of the material of top of the tube (see also `material-bottom`).

    - material-shape – Exponent for graded materials. Setting this value to anything different than one allows non-linear change the tube material.

    - inner-radius (`required`) – Inner radius of the tube base.

    - outer-radius (`required`) – Outer radius of the tube base.

    - height (`required`) – Height of the tube.

    - steps-num – Maximum number of the mesh steps in each direction the object is divided into if it is non-uniform.

    - steps-dist – Minimum step size if the object is non-uniform.