# PLaSK User Manual

#### Page Contents

- Rectangular3D Class
  - `Rectangular3D`
  - Subclasses
  - Methods
  - Attributes
  - Descriptions
    - Method Details
      - `Rectangular3D.Back()`
      - `Rectangular3D.BackOf()`
      - `Rectangular3D.Bottom()`
      - `Rectangular3D.BottomOf()`
      - `Rectangular3D.Front()`
      - `Rectangular3D.FrontOf()`
      - `Rectangular3D.Left()`
      - `Rectangular3D.LeftOf()`
      - `Rectangular3D.Right()`
      - `Rectangular3D.RightOf()`
      - `Rectangular3D.Top()`
      - `Rectangular3D.TopOf()`
      - `Rectangular3D.copy()`
      - `Rectangular3D.get_midpoints()`
      - `Rectangular3D.index()`
      - `Rectangular3D.index0()`
      - `Rectangular3D.index1()`
      - `Rectangular3D.index2()`
      - `Rectangular3D.major_index()`
      - `Rectangular3D.middle_index()`
      - `Rectangular3D.minor_index()`
      - `Rectangular3D.set_optimal_ordering()`
    - Attribute Details
      - `Rectangular3D.axis0`
      - `Rectangular3D.axis1`
      - `Rectangular3D.axis2`
      - `Rectangular3D.axis_long`
      - `Rectangular3D.axis_tran`
      - `Rectangular3D.axis_vert`
      - `Rectangular3D.dim`
      - `Rectangular3D.elements`
      - `Rectangular3D.index_long`
      - `Rectangular3D.index_tran`
      - `Rectangular3D.index_vert`
      - `Rectangular3D.major_axis`
      - `Rectangular3D.medium_axis`
      - `Rectangular3D.minor_axis`
      - `Rectangular3D.ordering`

# Rectangular3D Class

class plask.mesh.Rectangular3D(ordering='012')
class plask.mesh.Rectangular3D(geometry, ordering='012')
class plask.mesh.Rectangular3D(axis0, axis1, axis2, ordering='012')

  Three-dimensional mesh

  > create empty mesh

  > create mesh with axes supplied as mesh.OrderedAxis

  > create coarse mesh based on bounding boxes of geometry objects

  ordering can be any a string containing any permutation of and specifies ordering of the mesh points (last index changing fastest).

## Subclasses

`Boundary` | Generic boundary specification for RectangularBase3D mesh
`BoundaryConditions` | Set of boundary conditions.
`DivideGenerator` | Generator of Rectilinear3D mesh by simple division of the geometry.
`Element` | Element (FEM-like, rectangular) of the `Rectangular3D` mesh
`Elements` | Element list in the `Rectangular3D` mesh
`RegularGenerator` | Generator of Rectilinear3D mesh with lines at transverse edges of all objects and fine regular division of each object with spacing approximately equal to specified spacing
`SimpleGenerator` | Generator of Rectangular3D mesh with lines at edges of all objects.
`SmoothGenerator` | Generator of Rectilinear3D mesh with dense sampling at edges and smooth change of element size.

## Methods

`Back`() | Back side of the mesh for setting boundary conditions
`BackOf`(object[, path]) | Boundary back of specified object
`Bottom`() | Bottom side of the mesh for setting boundary conditions
`BottomOf`(object[, path]) | Boundary bottom of specified object
`Front`() | Front side of the mesh for setting boundary conditions
`FrontOf`(object[, path]) | Boundary in front of specified object
`Left`() | Left side of the mesh for setting boundary conditions
`LeftOf`(object[, path]) | Boundary left of specified object
`Right`() | Right side of the mesh for setting boundary conditions
`RightOf`(object[, path]) | Boundary right of specified object
`Top`() | Top side of the mesh for setting boundary conditions
`TopOf`(object[, path]) | Boundary top of specified object
`copy`() | Make a copy of this mesh
`get_midpoints`() | Get new mesh with points in the middles of of elements of this mesh
`index`(index0, index1, index2) | Return single index of the point indexed with index0, index1, and index2
`index0`(index) | Return index in the first axis of the point with given index
`index1`(index) | Return index in the second axis of the point with given index
`index2`(index) | Return index in the third axis of the point with given index
`major_index`(index) | Return index in the major axis of the point with given index
`middle_index`(index) | Return index in the middle axis of the point with given index
`minor_index`(index) | Return index in the minor axis of the point with given index
`set_optimal_ordering`() | Set the optimal ordering of the points in this mesh

## Attributes

`axis0` | The first (longitudinal) axis of the mesh
`axis1` | The second (transverse) axis of the mesh
`axis2` | The third (vertical) axis of the mesh
`axis_long` | The first (longitudinal) axis of the mesh, alias for `axis0`
`axis_tran` | The second (transverse) axis of the mesh, alias for `axis1`
`axis_vert` | The third (vertical) axis of the mesh, alias for `axis2`
`dim` |
`elements` | Element list in the mesh
`index_long` | Alias for `index0`
`index_tran` | Alias for `index1`
`index_vert` | Alias for `index2`
`major_axis` | The slowest changing axis
`medium_axis` | The middle changing axis
`minor_axis` | The quickest changing axis
`ordering` | Ordering of the points in this mesh

## Descriptions

### Method Details

Rectangular3D.Back()

  Back side of the mesh for setting boundary conditions

Rectangular3D.BackOf(object, path=None)

  Boundary back of specified object

Rectangular3D.Bottom()

  Bottom side of the mesh for setting boundary conditions

Rectangular3D.BottomOf(object, path=None)

  Boundary bottom of specified object

Rectangular3D.Front()

  Front side of the mesh for setting boundary conditions

Rectangular3D.FrontOf(object, path=None)

  Boundary in front of specified object

Rectangular3D.Left()

  Left side of the mesh for setting boundary conditions

Rectangular3D.LeftOf(object, path=None)

  Boundary left of specified object

Rectangular3D.Right()

  Right side of the mesh for setting boundary conditions

Rectangular3D.RightOf(object, path=None)

  Boundary right of specified object

Rectangular3D.Top()

  Top side of the mesh for setting boundary conditions

Rectangular3D.TopOf(object, path=None)

  Boundary top of specified object

Rectangular3D.copy()

  Make a copy of this mesh

Rectangular3D.get_midpoints()

  Get new mesh with points in the middles of of elements of this mesh

Rectangular3D.index(index0, index1, index2)

  Return single index of the point indexed with index0, index1, and index2

Rectangular3D.index0(index)

  Return index in the first axis of the point with given index

Rectangular3D.index1(index)

  Return index in the second axis of the point with given index

Rectangular3D.index2(index)

  Return index in the third axis of the point with given index

Rectangular3D.major_index(index)

  Return index in the major axis of the point with given index

Rectangular3D.middle_index(index)

  Return index in the middle axis of the point with given index

Rectangular3D.minor_index(index)

  Return index in the minor axis of the point with given index

Rectangular3D.set_optimal_ordering()

  Set the optimal ordering of the points in this mesh

### Attribute Details

Rectangular3D.axis0 = <property object>

  The first (longitudinal) axis of the mesh

Rectangular3D.axis1 = <property object>

  The second (transverse) axis of the mesh

Rectangular3D.axis2 = <property object>

  The third (vertical) axis of the mesh

Rectangular3D.axis_long = <property object>

  The first (longitudinal) axis of the mesh, alias for `axis0`

Rectangular3D.axis_tran = <property object>

  The second (transverse) axis of the mesh, alias for `axis1`

Rectangular3D.axis_vert = <property object>

  The third (vertical) axis of the mesh, alias for `axis2`

Rectangular3D.dim = 3

Rectangular3D.elements = <property object>

  Element list in the mesh

Rectangular3D.index_long = <property object>

  Alias for `index0`

Rectangular3D.index_tran = <property object>

  Alias for `index1`

Rectangular3D.index_vert = <property object>

  Alias for `index2`

Rectangular3D.major_axis = <property object>

  The slowest changing axis

Rectangular3D.medium_axis = <property object>

  The middle changing axis

Rectangular3D.minor_axis = <property object>

  The quickest changing axis

Rectangular3D.ordering = <property object>

  Ordering of the points in this mesh