# esys.escriptcore.domainCouplers Package

These domain couplers create a matching domain from each of two different domain families, allowing more simple interpolation across the two. These domains must already support interpolation in at least one direction.

class `esys.escriptcore.domainCouplers.``SpeckleyToRipley`(dimensions, pointsPerDim, lengths=None, diracPoints=[], diracTags=[], order=None)

  Bases: `object`

  A class for creating and storing a matching pair of domains from speckley and ripley families.

  `DEFAULT_lengths` = (1.0, 1.0, 1.0)
  `DEFAULT_order` = 2
  `createDomains`(pointsPerDim)

    > Creates a pair of domains with the previously supplied information and number of points.

    Parameters: | pointsPerDim (`tuple` of `int`) – the number of data points (not elements) in each dimension

  `getDomains`()
  `getRipley`()

    > Returns the `ripley` domain

    Returns: | The `ripley` domain
    Return type: | `RipleyDomain`

  `getRipleyShape`()

    > Returns the shape of the speckley domain

    Returns: | A `tuple` containing the number of elements in each dimension
    Return type: | `tuple` of `int`

  `getShapes`()

    > Returns the shape of the domains

    Returns: | A `tuple` of the two shape `tuples` in the form (speckley, ripley)
    Return type: | `tuple` of `tuple` of `int`

  `getSpeckley`()

    > Returns the speckley domain

    Returns: | The speckley domain
    Return type: | `SpeckleyDomain`

  `getSpeckleyShape`()

    > Returns the shape of the speckley domain

    Returns: | A `tuple` containing the number of elements in each dimension
    Return type: | `tuple` of `int`

## Classes

- `SpeckleyToRipley`

class `esys.escriptcore.domainCouplers.``SpeckleyToRipley`(dimensions, pointsPerDim, lengths=None, diracPoints=[], diracTags=[], order=None)

  Bases: `object`

  A class for creating and storing a matching pair of domains from speckley and ripley families.

  `__init__`(dimensions, pointsPerDim, lengths=None, diracPoints=[], diracTags=[], order=None)

    > Initialises the coupler, creating domains.

    Parameters:

    - dimensions (`int`) – whether 2-dimensional or 3-dimensional
    - pointsPerDim (`tuple` of `int`) – the number of data points (not elements) in each dimension
    - lengths (`tuple` of `int`) – the length of the domain, defaults to 1 in each dimension
    - diracPoints (`tuple` of `tuple` of `float`) – set of dirac point locations
    - diracTags (`tuple` of `string`) – tag name for each point in `diracPoints`
    - order (`int`) – element order of the speckley domain, defaults to 2

  `DEFAULT_lengths` = (1.0, 1.0, 1.0)
  `DEFAULT_order` = 2
  `createDomains`(pointsPerDim)

    > Creates a pair of domains with the previously supplied information and number of points.

    Parameters: | pointsPerDim (`tuple` of `int`) – the number of data points (not elements) in each dimension

  `getDomains`()
  `getRipley`()

    > Returns the `ripley` domain

    Returns: | The `ripley` domain
    Return type: | `RipleyDomain`

  `getRipleyShape`()

    > Returns the shape of the speckley domain

    Returns: | A `tuple` containing the number of elements in each dimension
    Return type: | `tuple` of `int`

  `getShapes`()

    > Returns the shape of the domains

    Returns: | A `tuple` of the two shape `tuples` in the form (speckley, ripley)
    Return type: | `tuple` of `tuple` of `int`

  `getSpeckley`()

    > Returns the speckley domain

    Returns: | The speckley domain
    Return type: | `SpeckleyDomain`

  `getSpeckleyShape`()

    > Returns the shape of the speckley domain

    Returns: | A `tuple` containing the number of elements in each dimension
    Return type: | `tuple` of `int`

## Functions

`esys.escriptcore.domainCouplers.``MPIBarrierWorld`() → None :

  Wait until all MPI processes have reached this point.

`esys.escriptcore.domainCouplers.``getMPISizeWorld`() → int :

  Return number of MPI processes in the job.

`esys.escriptcore.domainCouplers.``rBrick`()
  Brick( (float)n0, (float)n1, (float)n2 [, (object)l0=1.0 [, (object)l1=1.0 [, (object)l2=1.0 [, (int)d0=-1 [, (int)d1=-1 [, (int)d2=-1 [, (object)diracPoints=[] [, (object)diracTags=[] [, (SubWorld)escriptworld=None]]]]]]]]]) -> Domain :

    Creates a hexagonal mesh with n0 x n1 x n2 elements over the brick [0,l0] x [0,l1] x [0,l2].

    param n0: | number of elements in direction 0
    type n0: | `int`
    param n1: | number of elements in direction 1
    type n1: | `int`
    param n2: | number of elements in direction 2
    type n2: | `int`
    param l0: | length of side 0 or coordinate range of side 0
    type l0: | `float` or `tuple`
    param l1: | length of side 1 or coordinate range of side 1
    type l1: | `float` or `tuple`
    param l2: | length of side 2 or coordinate range of side 2
    type l2: | `float` or `tuple`
    param d0: | number of subdivisions in direction 0
    type d0: | `int`
    param d1: | number of subdivisions in direction 1
    type d1: | `int`
    param d2: | number of subdivisions in direction 2
    type d2: | `int`

`esys.escriptcore.domainCouplers.``rRectangle`()
  Rectangle( (float)n0, (float)n1 [, (object)l0=1.0 [, (object)l1=1.0 [, (int)d0=-1 [, (int)d1=-1 [, (object)diracPoints=[] [, (object)diracTags=[] [, (SubWorld)escriptworld=None]]]]]]]) -> Domain :

    Creates a rectangular mesh with n0 x n1 elements over the rectangle [0,l0] x [0,l1].

    param n0: | number of elements in direction 0
    type n0: | `int`
    param n1: | number of elements in direction 1
    type n1: | `int`
    param l0: | length of side 0 or coordinate range of side 0
    type l0: | `float` or `tuple`
    param l1: | length of side 1 or coordinate range of side 1
    type l1: | `float` or `tuple`
    param d0: | number of subdivisions in direction 0
    type d0: | `int`
    param d1: | number of subdivisions in direction 1
    type d1: | `int`

`esys.escriptcore.domainCouplers.``sBrick`()
  Brick( (int)order, (float)n0, (float)n1, (float)n2 [, (object)l0=1.0 [, (object)l1=1.0 [, (object)l2=1.0 [, (int)d0=-1 [, (int)d1=-1 [, (int)d2=-1 [, (object)diracPoints=[] [, (object)diracTags=[] [, (SubWorld)escriptworld=None]]]]]]]]]) -> Domain :

    Creates a hexagonal mesh with n0 x n1 x n2 elements over the brick [0,l0] x [0,l1] x [0,l2].

    param order: | the number of quadrature points to have in each dimension
    type n0: | `int`
    param n0: | number of elements in direction 0
    type n0: | `int`
    param n1: | number of elements in direction 1
    type n1: | `int`
    param n2: | number of elements in direction 2
    type n2: | `int`
    param l0: | length of side 0 or coordinate range of side 0
    type l0: | `float` or `tuple`
    param l1: | length of side 1 or coordinate range of side 1
    type l1: | `float` or `tuple`
    param l2: | length of side 2 or coordinate range of side 2
    type l2: | `float` or `tuple`
    param d0: | number of subdivisions in direction 0
    type d0: | `int`
    param d1: | number of subdivisions in direction 1
    type d1: | `int`
    param d2: | number of subdivisions in direction 2
    type d2: | `int`

`esys.escriptcore.domainCouplers.``sRectangle`()
  Rectangle( (int)order, (float)n0, (float)n1 [, (object)l0=1.0 [, (object)l1=1.0 [, (int)d0=-1 [, (int)d1=-1 [, (object)diracPoints=[] [, (object)diracTags=[] [, (SubWorld)escriptworld=None]]]]]]]) -> Domain :

    Creates a rectangular mesh with n0 x n1 elements over the rectangle [0,l0] x [0,l1].

    param n0: | number of elements in direction 0
    type n0: | `int`
    param n1: | number of elements in direction 1
    type n1: | `int`
    param l0: | length of side 0 or coordinate range of side 0
    type l0: | `float` or `tuple`
    param l1: | length of side 1 or coordinate range of side 1
    type l1: | `float` or `tuple`
    param d0: | number of subdivisions in direction 0
    type d0: | `int`
    param d1: | number of subdivisions in direction 1
    type d1: | `int`

## Others

- __builtins__
- __copyright__
- __doc__
- __file__
- __license__
- __name__
- __package__
- __url__
- division
- print_function