# PLaSK User Manual

#### Page Contents

- Rectangular2D Class
  - `Rectangular2D`
  - Subclasses
  - Methods
  - Attributes
  - Descriptions
    - Method Details
      - `Rectangular2D.Bottom()`
      - `Rectangular2D.BottomOf()`
      - `Rectangular2D.Horizontal()`
      - `Rectangular2D.Left()`
      - `Rectangular2D.LeftOf()`
      - `Rectangular2D.Right()`
      - `Rectangular2D.RightOf()`
      - `Rectangular2D.Top()`
      - `Rectangular2D.TopOf()`
      - `Rectangular2D.Vertical()`
      - `Rectangular2D.copy()`
      - `Rectangular2D.get_midpoints()`
      - `Rectangular2D.index()`
      - `Rectangular2D.index0()`
      - `Rectangular2D.index1()`
      - `Rectangular2D.major_index()`
      - `Rectangular2D.minor_index()`
      - `Rectangular2D.set_optimal_ordering()`
    - Attribute Details
      - `Rectangular2D.axis0`
      - `Rectangular2D.axis1`
      - `Rectangular2D.axis_tran`
      - `Rectangular2D.axis_vert`
      - `Rectangular2D.dim`
      - `Rectangular2D.elements`
      - `Rectangular2D.index_tran`
      - `Rectangular2D.index_vert`
      - `Rectangular2D.major_axis`
      - `Rectangular2D.minor_axis`
      - `Rectangular2D.ordering`

# Rectangular2D Class

class plask.mesh.Rectangular2D(geometry, ordering='01')
class plask.mesh.Rectangular2D(axis0, axis1, ordering='01')
class plask.mesh.Rectangular2D(ordering='01')

  Two-dimensional mesh

  > create empty mesh

  > create mesh with axes supplied as sequences of numbers

  > create coarse mesh based on bounding boxes of geometry objects

  ordering can be either ‘01’, ‘10’ and specifies ordering of the mesh points (last index changing fastest).

## Subclasses

`Boundary` | Generic boundary specification for RectangularBase2D mesh
`BoundaryConditions` | Set of boundary conditions.
`DivideGenerator` | Generator of Rectilinear2D mesh by simple division of the geometry.
`Element` | Element (FEM-like, rectangular) of the `Rectangular2D` mesh
`Elements` | Element list in the `Rectangular2D` mesh
`RegularGenerator` | Generator of Rectilinear2D 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 Rectangular2D mesh with lines at edges of all objects.
`SmoothGenerator` | Generator of Rectilinear2D mesh with dense sampling at edges and smooth change of element size.

## Methods

`Bottom`() | Bottom edge of the mesh for setting boundary conditions
`BottomOf`(object[, path]) | Boundary bottom of specified object
`Horizontal`(...) | Boundary at horizontal line
`Left`() | Left edge of the mesh for setting boundary conditions
`LeftOf`(object[, path]) | Boundary left of specified object
`Right`() | Right edge of the mesh for setting boundary conditions
`RightOf`(object[, path]) | Boundary right of specified object
`Top`() | Top edge of the mesh for setting boundary conditions
`TopOf`(object[, path]) | Boundary top of specified object
`Vertical`(...) | Boundary at vertical line
`copy`() | Make a copy of this mesh
`get_midpoints`() | Get new mesh with points in the middles of elements of this mesh
`index`(index0, index1) | Return single index of the point indexed with index0 and index1
`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
`major_index`(index) | Return index in the major 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 (transverse) axis of the mesh
`axis1` | The second (vertical) axis of the mesh
`axis_tran` | The first (transverse) axis of the mesh, alias for `axis0`
`axis_vert` | The second (vertical) axis of the mesh, alias for `axis1`
`dim` |
`elements` | Element list in the mesh
`index_tran` | Alias for `index0`
`index_vert` | Alias for `index1`
`major_axis` | The slower changing axis
`minor_axis` | The quicker changing axis
`ordering` | Ordering of the points in this mesh

## Descriptions

### Method Details

Rectangular2D.Bottom()

  Bottom edge of the mesh for setting boundary conditions

Rectangular2D.BottomOf(object, path=None)

  Boundary bottom of specified object

Rectangular2D.Horizontal(at)
Rectangular2D.Horizontal(at, start, stop)

  Boundary at horizontal line

  Boundary at horizontal line

Rectangular2D.Left()

  Left edge of the mesh for setting boundary conditions

Rectangular2D.LeftOf(object, path=None)

  Boundary left of specified object

Rectangular2D.Right()

  Right edge of the mesh for setting boundary conditions

Rectangular2D.RightOf(object, path=None)

  Boundary right of specified object

Rectangular2D.Top()

  Top edge of the mesh for setting boundary conditions

Rectangular2D.TopOf(object, path=None)

  Boundary top of specified object

Rectangular2D.Vertical(at)
Rectangular2D.Vertical(at, start, stop)

  Boundary at vertical line

  Boundary at vertical line

Rectangular2D.copy()

  Make a copy of this mesh

Rectangular2D.get_midpoints()

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

Rectangular2D.index(index0, index1)

  Return single index of the point indexed with index0 and index1

Rectangular2D.index0(index)

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

Rectangular2D.index1(index)

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

Rectangular2D.major_index(index)

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

Rectangular2D.minor_index(index)

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

Rectangular2D.set_optimal_ordering()

  Set the optimal ordering of the points in this mesh

### Attribute Details

Rectangular2D.axis0 = <property object>

  The first (transverse) axis of the mesh

Rectangular2D.axis1 = <property object>

  The second (vertical) axis of the mesh

Rectangular2D.axis_tran = <property object>

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

Rectangular2D.axis_vert = <property object>

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

Rectangular2D.dim = 2

Rectangular2D.elements = <property object>

  Element list in the mesh

Rectangular2D.index_tran = <property object>

  Alias for `index0`

Rectangular2D.index_vert = <property object>

  Alias for `index1`

Rectangular2D.major_axis = <property object>

  The slower changing axis

Rectangular2D.minor_axis = <property object>

  The quicker changing axis

Rectangular2D.ordering = <property object>

  Ordering of the points in this mesh