esys.finley Package¶
Our most general domain representation. Imports submodules into its namespace
Classes¶
-
class
esys.finley.
FinleyDomain
¶ Bases:
esys.escriptcore.escriptcpp.ContinuousDomain
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, (bool)d) → None :¶ adds a PDE onto the lumped stiffness matrix
Parameters: - mat (
Data
) – - D (
Data
) – - d (
Data
) – - useHRZ (bool) –
- mat (
-
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
) –
- rhs (
-
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
) –
- mat (
-
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
) –
- tp (
-
dump
((FinleyDomain)arg1, (str)fileName) → None :¶ dumps the mesh to a file with the given name.
-
getDataShape
((FinleyDomain)arg1, (int)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
-
getStatus
((Domain)arg1) → int :¶ The status of a domain changes whenever the domain is modified
Return type: int
-
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, (int)solver, (int)preconditioner, (int)package, (bool)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
) –
- solver (
-
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 tagReturn type: bool
-
newOperator
((FinleyDomain)arg1, (int)row_blocksize, (FunctionSpace)row_functionspace, (int)column_blocksize, (FunctionSpace)column_functionspace, (int)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
) –
- row_blocksize (
-
newTransportProblem
((FinleyDomain)theta, (int)blocksize, (FunctionSpace)functionspace, (int)type) → TransportProblem :¶ creates a TransportProblem
Parameters: - theta (
float
) – - blocksize (
int
) – - functionspace (
FunctionSpace
) – - type (
int
) –
- theta (
-
onMasterProcessor
((FinleyDomain)arg1) → bool :¶ Returns: True if this code is executing on the master process Return type: bool
-
print_mesh_info
((FinleyDomain)arg1[, (bool)full=False]) → None :¶ Parameters: full ( bool
) –
-
setTagMap
((FinleyDomain)arg1, (str)name, (int)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
- name (
-
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
-
supportsContactElements
((Domain)arg1) → bool :¶ Does this domain support contact elements.
-
write
((FinleyDomain)arg1, (str)filename) → None :¶ Write the current mesh to a file with the given name.
-
-
esys.finley.
GMSHDesign
¶ alias of
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[, (float)safetyFactor=0.2[, (float)tolerance=1e-08[, (bool)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[, (float)safetyFactor=0.2[, (float)tolerance=1e-08[, (bool)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 aesys.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
- design (
-
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 periodicparam periodic1: param useFullElementOrder: Whether or not to use Rec9 elements type useFullElementOrder: bool
param optimize: Enable optimisation of node labels type optimize: bool
Others¶
- __builtins__
- __copyright__
- __doc__
- __file__
- __license__
- __name__
- __nodocorecursion
- __package__
- __path__
- __url__
- division
- print_function