# esys.finley Package

Our most general domain representation. Imports submodules into its namespace

## Classes

- `FinleyDomain`

- `GMSHDesign`

class esys.finley.FinleyDomain

  A concrete class representing a domain. For more details, please consult the C++ documentation.

  __init__((object)arg1, (FinleyDomain)arg2) → None
  MPIBarrier((FinleyDomain)arg1) → None :

    Wait until all processes have reached this point

  addPDEToLumpedSystem((FinleyDomain)arg1, (Data)arg2, (Data)arg3, (Data)mat, (Data)D, (object)d) → None :

    adds a PDE onto the lumped stiffness matrix

    Parameters

      - mat (`Data`) –

      - D (`Data`) –

      - d (`Data`) –

      - useHRZ (bool) –

  addPDEToRHS((FinleyDomain)arg1, (Data)arg2, (Data)rhs, (Data)X, (Data)Y, (Data)y, (Data)y_contact) → None :

    adds a PDE onto the stiffness matrix mat and a rhs

    Parameters

      - rhs (`Data`) –

      - X (`Data`) –

      - Y (`Data`) –

      - y (`Data`) –

      - y_contact (`Data`) –

  addPDEToSystem((FinleyDomain)arg1, (Operator)arg2, (Data)arg3, (Data)mat, (Data)rhs, (Data)A, (Data)B, (Data)C, (Data)D, (Data)X, (Data)Y, (Data)d, (Data)y, (Data)d_contact, (Data)y_contact) → None :

    adds a PDE onto the stiffness matrix mat and a rhs

    Parameters

      - mat (`OperatorAdapter`) –

      - rhs (`Data`) –

      - A (`Data`) –

      - B (`Data`) –

      - C (`Data`) –

      - D (`Data`) –

      - X (`Data`) –

      - Y (`Data`) –

      - d (`Data`) –

      - d_contact (`Data`) –

      - y_contact (`Data`) –

  addPDEToTransportProblem((FinleyDomain)arg1, (TransportProblem)arg2, (Data)arg3, (Data)tp, (Data)source, (Data)M, (Data)A, (Data)B, (Data)C, (Data)D, (Data)X, (Data)Y, (Data)d, (Data)y, (Data)d_contact, (Data)y_contact) → None :
    Parameters

      - tp (`AbstractTransportProblem`) –

      - source (`Data`) –

      - M (`Data`) –

      - A (`Data`) –

      - B (`Data`) –

      - C (`Data`) –

      - D (`Data`) –

      - X (`Data`) –

      - Y (`Data`) –

      - d (`Data`) –

      - y (`Data`) –

      - d_contact (`Data`) –

      - y_contact (`Data`) –

  dump((FinleyDomain)arg1, (str)fileName) → None :

    dumps the mesh to a file with the given name.

  getConnectivityInfo((FinleyDomain)arg1) → numpy.ndarray :
    Returns

      returns point and connectivity information

    Return type

      `Data`

  getDataShape((FinleyDomain)arg1, (object)functionSpaceCode) → object :
    Returns

      a pair (dps, ns) where dps=the number of data points per sample, and ns=the number of samples

    Return type

      `tuple`

  getDescription((FinleyDomain)arg1) → str :
    Returns

      a description for this domain

    Return type

      `string`

  getDim((FinleyDomain)arg1) → int :
    Return type

      `int`

  getMPIRank((FinleyDomain)arg1) → int :
    Returns

      the rank of this process

    Return type

      `int`

  getMPISize((FinleyDomain)arg1) → int :
    Returns

      the number of processes used for this `Domain`

    Return type

      `int`

  getNormal((FinleyDomain)arg1) → Data :
    Returns

      boundary normals at the quadrature point on the face elements

    Return type

      `Data`

  getNumDataPointsGlobal((FinleyDomain)arg1) → int :
    Returns

      the number of data points summed across all MPI processes

    Return type

      `int`

  getSize((FinleyDomain)arg1) → Data :
    Returns

      the element size

    Return type

      `Data`

  getSystemMatrixTypeId((FinleyDomain)arg1, (object)options) → int :
    Returns

      the identifier of the matrix type to be used for the global stiffness matrix when particular solver options are used.

    Return type

      `int`

    Parameters

      options (`SolverBuddy`) –

  getTag((FinleyDomain)arg1, (str)name) → int :
    Returns

      tag id for `name`

    Return type

      `string`

  getTransportTypeId((FinleyDomain)arg1, (object)solver, (object)preconditioner, (object)package, (object)symmetry) → int :
    Returns

      the identifier of the transport problem type to be used when a particular solver, preconditioner, package and symmetric matrix is used.

    Return type

      `int`

    Parameters

      - solver (`int`) –

      - preconditioner (`int`) –

      - package (`int`) –

      - symmetry (`int`) –

  getVTKElementType((FinleyDomain)arg1) → int :
    Returns

      returns the VTK code for this element type

    Return type

      `Data`

  getX((FinleyDomain)arg1) → Data :
    Returns

      locations in the FEM nodes

    Return type

      `Data`

  isValidTagName((FinleyDomain)arg1, (str)name) → bool :
    Returns

      True is `name` corresponds to a tag

    Return type

      `bool`

  newOperator((FinleyDomain)arg1, (object)row_blocksize, (FunctionSpace)row_functionspace, (object)column_blocksize, (FunctionSpace)column_functionspace, (object)type) → Operator :

    creates a stiffness matrix and initializes it with zeros

    Parameters

      - row_blocksize (`int`) –

      - row_functionspace (`FunctionSpace`) –

      - column_blocksize (`int`) –

      - column_functionspace (`FunctionSpace`) –

      - type (`int`) –

  newTransportProblem((FinleyDomain)theta, (object)blocksize, (FunctionSpace)functionspace, (object)type) → TransportProblem :

    creates a TransportProblem

    Parameters

      - theta (`float`) –

      - blocksize (`int`) –

      - functionspace (`FunctionSpace`) –

      - type (`int`) –

  onMasterProcessor((FinleyDomain)arg1) → bool :
    Returns

      True if this code is executing on the master process

    Return type

      `bool`

  print_mesh_info((FinleyDomain)arg1[, (object)full=False]) → None :
    Parameters

      full (`bool`) –

  setTagMap((FinleyDomain)arg1, (str)name, (object)tag) → None :

    Give a tag number a name.

    Parameters

      - name (`string`) – Name for the tag

      - tag (`int`) – numeric id

    Note

      Tag names must be unique within a domain

  setX((FinleyDomain)arg1, (Data)arg) → None :

    assigns new location to the domain

    Parameters

      arg (`Data`) –

  showTagNames((FinleyDomain)arg1) → str :
    Returns

      A space separated list of tag names

    Return type

      `string`

  write((FinleyDomain)arg1, (str)filename) → None :

    Write the current mesh to a file with the given name.

esys.finley.GMSHDesign

  alias of `esys.pycad.gmsh.Design`

## Functions

esys.finley.Brick(n0=1, n1=1, n2=1, order=1, l0=1.0, l1=1.0, l2=1.0, periodic0=0, periodic1=0, periodic2=0, integrationOrder=- 1, reducedIntegrationOrder=- 1, useElementsOnFace=1, useFullElementOrder=0, optimize=0, **kwargs)
  __Brick_driver( (list)params) -> Domain :

    Creates a rectangular 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 order

      =1, =-1 or =2 gives the order of shape function. If -1 macro elements of order 1 are used.

    param l0

      length of side 0

    type l0

      `float`

    param l1

      length of side 1

    type l1

      `float`

    param l2

      length of side 2

    type l2

      `float`

    param periodic0

      whether or not boundary conditions are periodic in direction 0

    type periodic0

      `bool`

    param periodic1

      whether or not boundary conditions are periodic in direction 1

    type periodic1

      `bool`

    param periodic2

      whether or not boundary conditions are periodic in direction 2

    type periodic2

      `bool`

    param integrationOrder

      order of the quadrature scheme. If integrationOrder<0 the integration order is selected independently.

    param reducedIntegrationOrder

      order of the quadrature scheme. If reducedIntegrationOrder<0 the integration order is selected independently.

    param useElementsOnFace

      whether or not to use elements on face

    type useElementsOnFace

      `int`

    param useFullElementOrder

      Whether or not to use Hex27 elements

    type useFullElementOrder

      `bool`

    param optimize

      Enable optimisation of node labels

    type optimize

      `bool`

esys.finley.GetMeshFromFile(filename, **kwargs)

  Reads a mesh from a file, determines the reader to use based on the file extension. All cases require a filename and gmsh files require a number of dimensions (it doesn’t hurt to pass this in all the time). Other keyword args come from the underlying reader functions.

esys.finley.GlueFaces((list)meshList[, (object)safetyFactor=0.2[, (object)tolerance=1e-08[, (object)optimize=True]]]) → Domain :

  Detects matching faces in the mesh, removes them from the mesh and joins the elements touched by the face elements.

esys.finley.JoinFaces((list)meshList[, (object)safetyFactor=0.2[, (object)tolerance=1e-08[, (object)optimize=True]]]) → Domain :

  Detects matching faces in the mesh and replaces them by joint elements.

esys.finley.LoadMesh([(str)fileName='file.nc']) → Domain :
  Return type

    `FinleyDomain`

esys.finley.MakeDomain(design, integrationOrder=- 1, reducedIntegrationOrder=- 1, optimizeLabeling=True, useMacroElements=False)

  Creates a Finley `Domain` from a `esys.pycad.design.Design` object. Currently only gmsh is supported.

  Parameters

    - design (`esys.pycad.design.Design`) – the geometry

    - integrationOrder (`int`) – integration order. If -1 the default is used.

    - reducedIntegrationOrder (`int`) – reduced integration order. If -1 the default is used.

    - optimizeLabeling (`bool`) – if set the labeling of the mesh nodes is optimized

    - useMacroElements (`bool`) – uses macro elements.

  Returns

    the Finley domain defined by the design

  Return type

    `Domain`

esys.finley.Merge((list)meshList) → Domain :

  Merges a list of meshes into one mesh.

  Return type

    `Domain`

esys.finley.ReadGmsh(fileName, numDim, integrationOrder=- 1, reducedIntegrationOrder=- 1, optimize=True, useMacroElements=False, **kwargs)
  __ReadGmsh_driver( (list)params) -> Domain :

    Read a gmsh mesh file

    rtype

      `Domain`

    param fileName

    type fileName

      `string`

    param integrationOrder

      order of the quadrature scheme. If integrationOrder<0 the integration order is selected independently.

    type integrationOrder

      `int`

    param reducedIntegrationOrder

      order of the quadrature scheme. If reducedIntegrationOrder<0 the integration order is selected independently.

    param optimize

      Enable optimisation of node labels

    type optimize

      `bool`

    param useMacroElements

      Enable the usage of macro elements instead of second order elements.

    type useMacroElements

      `bool`

esys.finley.ReadMesh(filename, integrationOrder=- 1, reducedIntegrationOrder=- 1, optimize=True, **kwargs)
  __ReadMesh_driver( (list)params) -> Domain :

    Read a mesh from a file. For MPI parallel runs fan out the mesh to multiple processes.

    rtype

      `Domain`

    param fileName

    type fileName

      `string`

    param integrationOrder

      order of the quadrature scheme. If integrationOrder<0 the integration order is selected independently.

    type integrationOrder

      `int`

    param reducedIntegrationOrder

      order of the quadrature scheme. If reducedIntegrationOrder<0 the integration order is selected independently.

    param optimize

      Enable optimisation of node labels

    type optimize

      `bool`

esys.finley.Rectangle(n0=1, n1=1, order=1, l0=1.0, l1=1.0, periodic0=False, periodic1=False, integrationOrder=- 1, reducedIntegrationOrder=- 1, useElementsOnFace=None, useFullElementOrder=0, optimize=0, **kwargs)
  __Rectangle_driver( (list)args) -> Domain :

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

    param n0

    type n0

    param n1

    type n1

    param order

      =1, =-1 or =2 gives the order of shape function. If -1 macro elements of order 1 are used.

    param l0

      length of side 0

    param l1

    param integrationOrder

      order of the quadrature scheme. If integrationOrder<0 the integration order is selected independently.

    param reducedIntegrationOrder

      order of the quadrature scheme. If reducedIntegrationOrder<0 the integration order is selected independently.

    param useElementsOnFace

      whether or not to use elements on face

    type useElementsOnFace

      `int`:param periodic0: whether or not boundary conditions are periodic

    param periodic1

    param useFullElementOrder

      Whether or not to use Rec9 elements

    type useFullElementOrder

      `bool`

    param optimize

      Enable optimisation of node labels

    type optimize

      `bool`

## Others

## Packages