esys.escript.util Package¶
Classes¶
-
class
esys.escript.util.
Data
¶ Bases:
Boost.Python.instance
Represents a collection of datapoints. It is used to store the values of a function. For more details please consult the c++ class documentation.
-
__init__
((object)arg1) → None¶ __init__( (object)arg1, (object)value [, (object)p2 [, (object)p3 [, (object)p4]]]) -> None
-
conjugate
((Data)arg1) → Data¶
-
copy
((Data)arg1, (Data)other) → None :¶ Make this object a copy of
other
note: The two objects will act independently from now on. That is, changing other
after this call will not change this object and vice versa.- copy( (Data)arg1) -> Data :
note: In the no argument form, a new object will be returned which is an independent copy of this object.
-
copyWithMask
((Data)arg1, (Data)other, (Data)mask) → None :¶ Selectively copy values from
other
Data
.Datapoints which correspond to positive values inmask
will be copied fromother
Parameters:
-
delay
((Data)arg1) → Data :¶ Convert this object into lazy representation
-
dump
((Data)arg1, (str)fileName) → None :¶ Save the data as a netCDF file
Parameters: fileName ( string
) –
-
expand
((Data)arg1) → None :¶ Convert the data to expanded representation if it is not expanded already.
-
getDomain
((Data)arg1) → Domain :¶ Return type: Domain
-
getFunctionSpace
((Data)arg1) → FunctionSpace :¶ Return type: FunctionSpace
-
getNumberOfDataPoints
((Data)arg1) → int :¶ Return type: int
Returns: Number of datapoints in the object
-
getRank
((Data)arg1) → int :¶ Returns: the number of indices required to address a component of a datapoint Return type: positive int
-
getShape
((Data)arg1) → tuple :¶ Returns the shape of the datapoints in this object as a python tuple. Scalar data has the shape
()
Return type: tuple
-
getTagNumber
((Data)arg1, (int)dpno) → int :¶ Return tag number for the specified datapoint
Return type: int Parameters: dpno (int) – datapoint number
-
getTupleForDataPoint
((Data)arg1, (int)dataPointNo) → object :¶ Returns: Value of the specified datapoint Return type: tuple
Parameters: dataPointNo ( int
) – datapoint to access
-
getTupleForGlobalDataPoint
((Data)arg1, (int)procNo, (int)dataPointNo) → object :¶ Get a specific datapoint from a specific process
Return type: tuple
Parameters: - procNo (positive
int
) – MPI rank of the process - dataPointNo (int) – datapoint to access
- procNo (positive
-
hasInf
((Data)arg1) → bool :¶ Returns return true if data contains +-Inf. [Note that for complex values, hasNaN and hasInf are not mutually exclusive.]
-
hasNaN
((Data)arg1) → bool :¶ Returns return true if data contains NaN. [Note that for complex values, hasNaN and hasInf are not mutually exclusive.]
-
imag
((Data)arg1) → Data¶
-
internal_maxGlobalDataPoint
((Data)arg1) → tuple :¶ Please consider using getSupLocator() from pdetools instead.
-
internal_minGlobalDataPoint
((Data)arg1) → tuple :¶ Please consider using getInfLocator() from pdetools instead.
-
interpolate
((Data)arg1, (FunctionSpace)functionspace) → Data :¶ Interpolate this object’s values into a new functionspace.
-
interpolateTable
((Data)arg1, (object)table, (float)Amin, (float)Astep, (Data)B, (float)Bmin, (float)Bstep[, (float)undef=1e+50[, (bool)check_boundaries=False]]) → Data :¶ - Creates a new Data object by interpolating using the source data (which are
looked up in
table
)A
must be the outer dimension on the tableparam table: two dimensional collection of values param Amin: The base of locations in table type Amin: float param Astep: size of gap between each item in the table type Astep: float param undef: upper bound on interpolated values type undef: float param B: Scalar representing the second coordinate to be mapped into the table type B: Data
param Bmin: The base of locations in table for 2nd dimension type Bmin: float param Bstep: size of gap between each item in the table for 2nd dimension type Bstep: float param check_boundaries: if true, then values outside the boundaries will be rejected. If false, then boundary values will be used. raise RuntimeError(DataException): if the coordinates do not map into the table or if the interpolated value is above undef
rtype: Data
interpolateTable( (Data)arg1, (object)table, (float)Amin, (float)Astep [, (float)undef=1e+50 [, (bool)check_boundaries=False]]) -> Data
-
isComplex
((Data)arg1) → bool :¶ Return type: bool
Returns: True if this Data
stores complex values.
-
isConstant
((Data)arg1) → bool :¶ Return type: bool
Returns: True if this Data
is an instance ofDataConstant
Note: This does not mean the data is immutable.
-
isEmpty
((Data)arg1) → bool :¶ Is this object an instance of
DataEmpty
Return type: bool
Note: This is not the same thing as asking if the object contains datapoints.
-
isExpanded
((Data)arg1) → bool :¶ Return type: bool
Returns: True if this Data
is expanded.
-
isLazy
((Data)arg1) → bool :¶ Return type: bool
Returns: True if this Data
is lazy.
-
isProtected
((Data)arg1) → bool :¶ Can this instance be modified. :rtype:
bool
-
isReady
((Data)arg1) → bool :¶ Return type: bool
Returns: True if this Data
is not lazy.
-
isTagged
((Data)arg1) → bool :¶ Return type: bool
Returns: True if this Data
is expanded.
-
nonuniformInterpolate
((Data)arg1, (object)in, (object)out, (bool)check_boundaries) → Data :¶ 1D interpolation with non equally spaced points
-
nonuniformSlope
((Data)arg1, (object)in, (object)out, (bool)check_boundaries) → Data :¶ 1D interpolation of slope with non equally spaced points
-
phase
((Data)arg1) → Data¶
-
promote
((Data)arg1) → None¶
-
real
((Data)arg1) → Data¶
-
replaceInf
((Data)arg1, (object)value) → None :¶ Replaces +-Inf values with value. [Note, for complex Data, both real and imaginary components are replaced even if only one part is Inf].
-
replaceNaN
((Data)arg1, (object)value) → None :¶ Replaces NaN values with value. [Note, for complex Data, both real and imaginary components are replaced even if only one part is NaN].
-
resolve
((Data)arg1) → None :¶ Convert the data to non-lazy representation.
-
setProtection
((Data)arg1) → None :¶ Disallow modifications to this data object
Note: This method does not allow you to undo protection.
-
setTaggedValue
((Data)arg1, (int)tagKey, (object)value) → None :¶ Set the value of tagged Data.
param tagKey: tag to update type tagKey: int
- setTaggedValue( (Data)arg1, (str)name, (object)value) -> None :
param name: tag to update type name: string
param value: value to set tagged data to type value: object
which acts like an array,tuple
orlist
-
setToZero
((Data)arg1) → None :¶ After this call the object will store values of the same shape as before but all components will be zero.
-
setValueOfDataPoint
((Data)arg1, (int)dataPointNo, (object)value) → None¶ setValueOfDataPoint( (Data)arg1, (int)arg2, (object)arg3) -> None
setValueOfDataPoint( (Data)arg1, (int)arg2, (float)arg3) -> None :
Modify the value of a single datapoint.
param dataPointNo: type dataPointNo: int param value: type value: float
or an object which acts like an array,tuple
orlist
warning: Use of this operation is discouraged. It prevents some optimisations from operating.
-
tag
((Data)arg1) → None :¶ Convert data to tagged representation if it is not already tagged or expanded
-
toListOfTuples
((Data)arg1[, (bool)scalarastuple=False]) → object :¶ Return the datapoints of this object in a list. Each datapoint is stored as a tuple.
Parameters: scalarastuple – if True, scalar data will be wrapped as a tuple. True => [(0), (1), (2)]; False => [0, 1, 2]
-
-
class
esys.escript.util.
FileWriter
(fn, append=False, createLocalFiles=False)¶ Bases:
object
Interface to write data to a file. In essence this class wrappes the standard
file
object to write data that are global in MPI to a file. In fact, data are writen on the processor with MPI rank 0 only. It is recommended to useFileWriter
rather thanopen
in order to write code that is running with as well as with MPI. It is safe to useopen
onder MPI to read data which are global under MPI.Variables: - name – name of file
- mode – access mode (=’w’ or =’a’)
- closed – True to indicate closed file
- newlines – line seperator
-
__init__
(fn, append=False, createLocalFiles=False)¶ Opens a file of name
fn
for writing. If running under MPI only the first processor with rank==0 will open the file and write to it. IfcreateLocalFiles
each individual processor will create a file where for any processor with rank>0 the file name is extended by its rank. This option is normally only used for debug purposes.Parameters: - fn (
str
) – filename. - append (
bool
) – switches on the creation of local files. - createLocalFiles (
bool
) – switches on the creation of local files.
- fn (
-
close
()¶ Closes the file
-
flush
()¶ Flush the internal I/O buffer.
-
write
(txt)¶ Write string
txt
to file.Parameters: txt ( str
) – stringtxt
to be written to file
-
writelines
(txts)¶ Write the list
txt
of strings to the file.Parameters: txts (any iterable object producing strings) – sequense of strings to be written to file Note: Note that newlines are not added. This method is equivalent to call write() for each string.
Functions¶
-
esys.escript.util.
Abs
(arg)¶ Returns the absolute value of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
.) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
C_GeneralTensorProduct
((Data)arg0, (Data)arg1[, (int)axis_offset=0[, (int)transpose=0]]) → Data :¶ Compute a tensor product of two Data objects.
Return type: Parameters: - arg0 –
- arg1 –
- axis_offset (
int
) – - transpose (int) – 0: transpose neither, 1: transpose arg0, 2: transpose arg1
-
esys.escript.util.
L2
(arg)¶ Returns the L2 norm of
arg
atwhere
.Parameters: arg ( escript.Data
orSymbol
) – function of which the L2 norm is to be calculatedReturns: L2 norm of arg
Return type: float
orSymbol
Note: L2(arg) is equivalent to sqrt(integrate(inner(arg,arg)))
-
esys.escript.util.
Lsup
(arg)¶ Returns the Lsup-norm of argument
arg
. This is the maximum absolute value over all data points. This function is equivalent tosup(abs(arg))
.Parameters: arg ( float
,int
,escript.Data
,numpy.ndarray
) – argumentReturns: maximum value of the absolute value of arg
over all components and all data pointsReturn type: float
Raises: TypeError – if type of arg
cannot be processed
-
esys.escript.util.
NumpyToData
(array, isComplex, functionspace)¶ Uses a numpy ndarray to create a
Data
objectExample usage: NewDataObject = NumpyToData(ndarray, isComplex, FunctionSpace)
-
esys.escript.util.
acos
(arg)¶ Returns the inverse cosine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
acosh
(arg)¶ Returns the inverse hyperbolic cosine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
antihermitian
(arg)¶ Returns the anti-hermitian part of the square matrix
arg
. That is, (arg-adjoint(arg))/2.Parameters: arg ( numpy.ndarray
,escript.Data
,Symbol
) – input matrix. Must have rank 2 or 4 and be square.Returns: anti-hermitian part of arg
Return type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
antisymmetric
(arg)¶ Returns the anti-symmetric part of the square matrix
arg
. That is, (arg-transpose(arg))/2.Parameters: arg ( numpy.ndarray
,escript.Data
,Symbol
) – input matrix. Must have rank 2 or 4 and be square.Returns: anti-symmetric part of arg
Return type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
asin
(arg)¶ Returns the inverse sine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
asinh
(arg)¶ Returns the inverse hyperbolic sine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
atan
(arg)¶ Returns inverse tangent of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
atan2
(arg0, arg1)¶ Returns inverse tangent of argument
arg0
overarg1
-
esys.escript.util.
atanh
(arg)¶ Returns the inverse hyperbolic tangent of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
boundingBox
(domain)¶ Returns the bounding box of a domain
Parameters: domain ( escript.Domain
) – a domainReturns: bounding box of the domain Return type: list
of pairs offloat
-
esys.escript.util.
boundingBoxEdgeLengths
(domain)¶ Returns the edge lengths of the bounding box of a domain
Parameters: domain ( escript.Domain
) – a domainReturn type: list
offloat
-
esys.escript.util.
clip
(arg, minval=None, maxval=None)¶ Cuts the values of
arg
betweenminval
andmaxval
.Parameters: - arg (
numpy.ndarray
,escript.Data
,Symbol
,int
orfloat
) – argument - minval (
float
orNone
) – lower range. If None no lower range is applied - maxval (
float
orNone
) – upper range. If None no upper range is applied
Returns: an object that contains all values from
arg
betweenminval
andmaxval
Return type: numpy.ndarray
,escript.Data
,Symbol
,int
orfloat
depending on the inputRaises: ValueError – if
minval>maxval
- arg (
-
esys.escript.util.
commonDim
(*args)¶ Identifies, if possible, the spatial dimension across a set of objects which may or may not have a spatial dimension.
Parameters: args – given objects Returns: the spatial dimension of the objects with identifiable dimension (see pokeDim
). If none of the objects has a spatial dimensionNone
is returned.Return type: int
orNone
Raises: ValueError – if the objects with identifiable dimension don’t have the same spatial dimension.
-
esys.escript.util.
commonShape
(arg0, arg1)¶ Returns a shape to which
arg0
can be extended from the right andarg1
can be extended from the left.Parameters: Returns: the shape of
arg0
orarg1
such that the left part equals the shape ofarg0
and the right end equals the shape ofarg1
Return type: tuple
ofint
Raises: ValueError – if no shape can be found
-
esys.escript.util.
condEval
(f, tval, fval)¶ Wrapper to allow non-data objects to be used.
-
esys.escript.util.
convertToNumpy
(data)¶ Writes
Data
objects to a numpy array.The keyword args are Data objects to save. If a scalar
Data
object is passed with the namemask
, then only samples which correspond to positive values inmask
will be output.Example usage:
s=Scalar(..) v=Vector(..) t=Tensor(..) f=float() array = getNumpy(a=s, b=v, c=t, d=f)
-
esys.escript.util.
cos
(arg)¶ Returns cosine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
cosh
(arg)¶ Returns the hyperbolic cosine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
delay
(arg)¶ Returns a lazy version of arg
-
esys.escript.util.
deviatoric
(arg)¶ Returns the deviatoric version of
arg
.
-
esys.escript.util.
diameter
(domain)¶ Returns the diameter of a domain.
Parameters: domain ( escript.Domain
) – a domainReturn type: float
-
esys.escript.util.
div
(arg, where=None)¶ Returns the divergence of
arg
atwhere
.Parameters: - arg (
escript.Data
orSymbol
) – function of which the divergence is to be calculated. Its shape has to be (d,) where d is the spatial dimension. - where (
None
orescript.FunctionSpace
) –FunctionSpace
in which the divergence will be calculated. If not present orNone
an appropriate default is used.
Returns: divergence of
arg
Return type: escript.Data
orSymbol
- arg (
-
esys.escript.util.
eigenvalues
(arg)¶ Returns the eigenvalues of the square matrix
arg
.Parameters: arg ( numpy.ndarray
,escript.Data
,Symbol
) – square matrix. Must have rank 2 and the first and second dimension must be equal. It must also be symmetric, ie.transpose(arg)==arg
(this is not checked).Returns: the eigenvalues in increasing order Return type: numpy.ndarray
,escript.Data
,Symbol
depending on the inputNote: for escript.Data
andSymbol
objects the dimension is restricted to 3.
-
esys.escript.util.
eigenvalues_and_eigenvectors
(arg)¶ Returns the eigenvalues and eigenvectors of the square matrix
arg
.Parameters: arg ( escript.Data
) – square matrix. Must have rank 2 and the first and second dimension must be equal. It must also be symmetric, ie.transpose(arg)==arg
(this is not checked).Returns: the eigenvalues and eigenvectors. The eigenvalues are ordered by increasing value. The eigenvectors are orthogonal and normalized. If V are the eigenvectors then V[:,i] is the eigenvector corresponding to the i-th eigenvalue. Return type: tuple
ofescript.Data
Note: The dimension is restricted to 3.
-
esys.escript.util.
erf
(arg)¶ Returns the error function erf of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
.) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
escript_generalTensorProduct
(arg0, arg1, axis_offset, transpose=0)¶ arg0 and arg1 are both Data objects but not necessarily on the same function space. They could be identical!!!
-
esys.escript.util.
escript_generalTensorTransposedProduct
(arg0, arg1, axis_offset)¶ arg0 and arg1 are both Data objects but not necessarily on the same function space. They could be identical!!!
-
esys.escript.util.
escript_generalTransposedTensorProduct
(arg0, arg1, axis_offset)¶ arg0 and arg1 are both Data objects but not necessarily on the same function space. They could be identical!!!
-
esys.escript.util.
escript_inverse
(arg)¶ arg is a Data object!
-
esys.escript.util.
exp
(arg)¶ Returns e to the power of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
.) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type of argRaises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
generalTensorProduct
(arg0, arg1, axis_offset=0)¶ Generalized tensor product.
out[s,t]=Sigma_r arg0[s,r]*arg1[r,t]
- where
- s runs through
arg0.Shape[:arg0.ndim-axis_offset]
- r runs through
arg1.Shape[:axis_offset]
- t runs through
arg1.Shape[axis_offset:]
- s runs through
Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – first argument - arg1 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – second argument
Returns: the general tensor product of
arg0
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
generalTensorTransposedProduct
(arg0, arg1, axis_offset=0)¶ Generalized tensor product of
arg0
and transpose ofarg1
.out[s,t]=Sigma_r arg0[s,r]*arg1[t,r]
- where
- s runs through
arg0.Shape[:arg0.ndim-axis_offset]
- r runs through
arg0.Shape[arg1.ndim-axis_offset:]
- t runs through
arg1.Shape[arg1.ndim-axis_offset:]
- s runs through
The function call
generalTensorTransposedProduct(arg0,arg1,axis_offset)
is equivalent togeneralTensorProduct(arg0,transpose(arg1,arg1.ndim-axis_offset),axis_offset)
.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – first argument - arg1 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – second argument
Returns: the general tensor product of
arg0
andtranspose(arg1)
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
generalTransposedTensorProduct
(arg0, arg1, axis_offset=0)¶ Generalized tensor product of transposed of
arg0
andarg1
.out[s,t]=Sigma_r arg0[r,s]*arg1[r,t]
- where
- s runs through
arg0.Shape[axis_offset:]
- r runs through
arg0.Shape[:axis_offset]
- t runs through
arg1.Shape[axis_offset:]
- s runs through
The function call
generalTransposedTensorProduct(arg0,arg1,axis_offset)
is equivalent togeneralTensorProduct(transpose(arg0,arg0.ndim-axis_offset),arg1,axis_offset)
.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – first argument - arg1 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – second argument
Returns: the general tensor product of
transpose(arg0)
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
getClosestValue
(arg, origin=0)¶ Returns the value in
arg
which is closest to origin.Parameters: - arg (
escript.Data
) – function - origin (
float
orescript.Data
) – reference value
Returns: value in
arg
closest to originReturn type: numpy.ndarray
- arg (
-
esys.escript.util.
getEpsilon
()¶
-
esys.escript.util.
getMPIRankWorld
() → int :¶ Return the rank of this process in the MPI World.
-
esys.escript.util.
getMPIWorldMax
((int)arg1) → int :¶ Each MPI process calls this function with a value for arg1. The maximum value is computed and returned.
Return type: int
-
esys.escript.util.
getMaxFloat
()¶
-
esys.escript.util.
getNumpy
(**data)¶ Writes
Data
objects to a numpy array.The keyword args are Data objects to save. If a scalar
Data
object is passed with the namemask
, then only samples which correspond to positive values inmask
will be output.Example usage:
s=Scalar(..) v=Vector(..) t=Tensor(..) f=float() array = getNumpy(a=s, b=v, c=t, d=f)
-
esys.escript.util.
getRank
(arg)¶ Identifies the rank of the argument.
Parameters: arg ( numpy.ndarray
,escript.Data
,float
,int
,Symbol
) – an object whose rank is to be returnedReturns: the rank of the argument Return type: int
Raises: TypeError – if type of arg
cannot be processed
-
esys.escript.util.
getShape
(arg)¶ Identifies the shape of the argument.
Parameters: arg ( numpy.ndarray
,escript.Data
,float
,int
,Symbol
) – an object whose shape is to be returnedReturns: the shape of the argument Return type: tuple
ofint
Raises: TypeError – if type of arg
cannot be processed
-
esys.escript.util.
getTagNames
(domain)¶ Returns a list of tag names used by the domain.
Parameters: domain ( escript.Domain
) – a domain objectReturns: a list of tag names used by the domain Return type: list
ofstr
-
esys.escript.util.
getVersion
() → int :¶ This method will only report accurate version numbers for clean checkouts.
-
esys.escript.util.
gmshGeo2Msh
(geoFile, mshFile, numDim, order=1, verbosity=0)¶ Runs gmsh to mesh input
geoFile
. Returns 0 on success.
-
esys.escript.util.
grad
(arg, where=None)¶ Returns the spatial gradient of
arg
atwhere
.If
g
is the returned object, then- if
arg
is rank 0g[s]
is the derivative ofarg
with respect to thes
-th spatial dimension - if
arg
is rank 1g[i,s]
is the derivative ofarg[i]
with respect to thes
-th spatial dimension - if
arg
is rank 2g[i,j,s]
is the derivative ofarg[i,j]
with respect to thes
-th spatial dimension - if
arg
is rank 3g[i,j,k,s]
is the derivative ofarg[i,j,k]
with respect to thes
-th spatial dimension.
Parameters: - arg (
escript.Data
orSymbol
) – function of which the gradient is to be calculated. Its rank has to be less than 3. - where (
None
orescript.FunctionSpace
) – FunctionSpace in which the gradient is calculated. If not present orNone
an appropriate default is used.
Returns: gradient of
arg
Return type: escript.Data
orSymbol
- if
-
esys.escript.util.
grad_n
(arg, n, where=None)¶
-
esys.escript.util.
hasFeature
((str)name) → bool :¶ Check if escript was compiled with a certain feature
Parameters: name ( string
) – feature to lookup
-
esys.escript.util.
hermitian
(arg)¶ Returns the hermitian part of the square matrix
arg
. That is, (arg+adjoint(arg))/2.Parameters: arg ( numpy.ndarray
,escript.Data
,Symbol
) – input matrix. Must have rank 2 or 4 and be square.Returns: hermitian part of arg
Return type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
identity
(shape=())¶ Returns the
shape
xshape
identity tensor.Parameters: shape ( tuple
ofint
) – input shape for the identity tensorReturns: array whose shape is shape x shape where u[i,k]=1 for i=k and u[i,k]=0 otherwise for len(shape)=1. If len(shape)=2: u[i,j,k,l]=1 for i=k and j=l and u[i,j,k,l]=0 otherwise. Return type: numpy.ndarray
of rank 1, rank 2 or rank 4Raises: ValueError – if len(shape)>2
-
esys.escript.util.
identityTensor
(d=3)¶ Returns the
d
xd
identity matrix.Parameters: d ( int
,escript.Domain
orescript.FunctionSpace
) – dimension or an object that has thegetDim
method defining the dimensionReturns: the object u of rank 2 with u[i,j]=1 for i=j and u[i,j]=0 otherwise Return type: numpy.ndarray
orescript.Data
of rank 2
-
esys.escript.util.
identityTensor4
(d=3)¶ Returns the
d
xd
xd
xd
identity tensor.Parameters: d ( int
or any object with agetDim
method) – dimension or an object that has thegetDim
method defining the dimensionReturns: the object u of rank 4 with u[i,j,k,l]=1 for i=k and j=l and u[i,j,k,l]=0 otherwise Return type: numpy.ndarray
orescript.Data
of rank 4
-
esys.escript.util.
inf
(arg)¶ Returns the minimum value over all data points.
Parameters: arg ( float
,int
,escript.Data
,numpy.ndarray
) – argumentReturns: minimum value of arg
over all components and all data pointsReturn type: float
Raises: TypeError – if type of arg
cannot be processed
-
esys.escript.util.
inner
(arg0, arg1)¶ Inner product of the two arguments. The inner product is defined as:
out=Sigma_s arg0[s]*arg1[s]
where s runs through
arg0.Shape
.arg0
andarg1
must have the same shape.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – first argument - arg1 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – second argument
Returns: the inner product of
arg0
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
,float
depending on the inputRaises: ValueError – if the shapes of the arguments are not identical
- arg0 (
-
esys.escript.util.
insertTagNames
(domain, **kwargs)¶ Inserts tag names into the domain.
Parameters: - domain (
escript.Domain
) – a domain object - <tag_name> (
int
) – tag key assigned to <tag_name>
- domain (
-
esys.escript.util.
insertTaggedValues
(target, **kwargs)¶ Inserts tagged values into the target using tag names.
Parameters: - target (
escript.Data
) – data to be filled by tagged values - <tag_name> (
float
ornumpy.ndarray
) – value to be used for <tag_name>
Returns: target
Return type: escript.Data
- target (
-
esys.escript.util.
integrate
(arg, where=None)¶ Returns the integral of the function
arg
over its domain. Ifwhere
is presentarg
is interpolated towhere
before integration.Parameters: - arg (
escript.Data
orSymbol
) – the function which is integrated - where (
None
orescript.FunctionSpace
) – FunctionSpace in which the integral is calculated. If not present orNone
an appropriate default is used.
Returns: integral of
arg
Return type: float
,numpy.ndarray
orSymbol
- arg (
-
esys.escript.util.
interpolate
(arg, where)¶ Interpolates the function into the
FunctionSpace
where
. If the argumentarg
has the requested function spacewhere
no interpolation is performed andarg
is returned.Parameters: - arg (
escript.Data
orSymbol
) – interpolant - where (
escript.FunctionSpace
) –FunctionSpace
to be interpolated to
Returns: interpolated argument
Return type: escript.Data
orSymbol
- arg (
-
esys.escript.util.
interpolateTable
(tab, dat, start, step, undef=1e+50, check_boundaries=False)¶
-
esys.escript.util.
inverse
(arg)¶ Returns the inverse of the square matrix
arg
.Parameters: arg ( numpy.ndarray
,escript.Data
,Symbol
) – square matrix. Must have rank 2 and the first and second dimension must be equal.Returns: inverse of the argument. matrix_mult(inverse(arg),arg)
will be almost equal tokronecker(arg.getShape()[0])
Return type: numpy.ndarray
,escript.Data
,Symbol
depending on the inputNote: for escript.Data
objects the dimension is restricted to 3.
-
esys.escript.util.
jump
(arg, domain=None)¶ Returns the jump of
arg
across the continuity of the domain.Parameters: - arg (
escript.Data
orSymbol
) – argument - domain (
None
orescript.Domain
) – the domain where the discontinuity is located. If domain is not present or equal toNone
the domain ofarg
is used.
Returns: jump of
arg
Return type: escript.Data
orSymbol
- arg (
-
esys.escript.util.
kronecker
(d=3)¶ Returns the kronecker delta-symbol.
Parameters: d ( int
,escript.Domain
orescript.FunctionSpace
) – dimension or an object that has thegetDim
method defining the dimensionReturns: the object u of rank 2 with u[i,j]=1 for i=j and u[i,j]=0 otherwise Return type: numpy.ndarray
orescript.Data
of rank 2
-
esys.escript.util.
length
(arg)¶ Returns the length (Euclidean norm) of argument
arg
at each data point.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
depending on the type ofarg
-
esys.escript.util.
listEscriptParams
() → list :¶ Returns: A list of tuples (p,v,d) where p is the name of a parameter for escript, v is its current value, and d is a description.
-
esys.escript.util.
log
(arg)¶ Returns the natural logarithm of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
.) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
log10
(arg)¶ Returns base-10 logarithm of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
longestEdge
(domain)¶ Returns the length of the longest edge of the domain
Parameters: domain ( escript.Domain
) – a domainReturns: longest edge of the domain parallel to the Cartesian axis Return type: float
-
esys.escript.util.
makeTagMap
(fs)¶ Produce an expanded Data over the function space where the value is the tag associated with the sample
-
esys.escript.util.
matchShape
(arg0, arg1)¶ Returns a representation of
arg0
andarg1
which have the same shape.Parameters: - arg0 (
numpy.ndarray
,`escript.Data`,``float``,int
,Symbol
) – first argument - arg1 (
numpy.ndarray
,`escript.Data`,``float``,int
,Symbol
) – second argument
Returns: arg0
andarg1
where copies are returned when the shape has to be changedReturn type: tuple
- arg0 (
-
esys.escript.util.
matchType
(arg0=0.0, arg1=0.0)¶ Converts
arg0
andarg1
both to the same typenumpy.ndarray
orescript.Data
Parameters: - arg0 (
numpy.ndarray
,`escript.Data`,``float``,int
,Symbol
) – first argument - arg1 (
numpy.ndarray
,`escript.Data`,``float``,int
,Symbol
) – second argument
Returns: a tuple representing
arg0
andarg1
with the same type or with at least one of them being aSymbol
Return type: tuple
of twonumpy.ndarray
or twoescript.Data
Raises: TypeError – if type of
arg0
orarg1
cannot be processed- arg0 (
-
esys.escript.util.
matrix_mult
(arg0, arg1)¶ matrix-matrix or matrix-vector product of the two arguments.
out[s0]=Sigma_{r0} arg0[s0,r0]*arg1[r0]
or
out[s0,s1]=Sigma_{r0} arg0[s0,r0]*arg1[r0,s1]
The second dimension of
arg0
and the first dimension ofarg1
must match.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
) – first argument of rank 2 - arg1 (
numpy.ndarray
,escript.Data
,Symbol
) – second argument of at least rank 1
Returns: the matrix-matrix or matrix-vector product of
arg0
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the inputRaises: ValueError – if the shapes of the arguments are not appropriate
- arg0 (
-
esys.escript.util.
matrix_transposed_mult
(arg0, arg1)¶ matrix-transposed(matrix) product of the two arguments.
out[s0,s1]=Sigma_{r0} arg0[s0,r0]*arg1[s1,r0]
The function call
matrix_transposed_mult(arg0,arg1)
is equivalent tomatrix_mult(arg0,transpose(arg1))
.The last dimensions of
arg0
andarg1
must match.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
) – first argument of rank 2 - arg1 (
numpy.ndarray
,escript.Data
,Symbol
) – second argument of rank 1 or 2
Returns: the product of
arg0
and the transposed ofarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the inputRaises: ValueError – if the shapes of the arguments are not appropriate
- arg0 (
-
esys.escript.util.
matrixmult
(arg0, arg1)¶ See
matrix_mult
.
-
esys.escript.util.
maximum
(*args)¶ The maximum over arguments
args
.Parameters: args ( numpy.ndarray
,escript.Data
,Symbol
,int
orfloat
) – argumentsReturns: an object which in each entry gives the maximum of the corresponding values in args
Return type: numpy.ndarray
,escript.Data
,Symbol
,int
orfloat
depending on the input
-
esys.escript.util.
maxval
(arg)¶ Returns the maximum value over all components of
arg
at each data point.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
meanValue
(arg)¶ return the mean value of the argument over its domain
Parameters: arg ( escript.Data
) – functionReturns: mean value Return type: float
ornumpy.ndarray
-
esys.escript.util.
minimum
(*args)¶ The minimum over arguments
args
.Parameters: args ( numpy.ndarray
,escript.Data
,Symbol
,int
orfloat
) – argumentsReturns: an object which gives in each entry the minimum of the corresponding values in args
Return type: numpy.ndarray
,escript.Data
,Symbol
,int
orfloat
depending on the input
-
esys.escript.util.
minval
(arg)¶ Returns the minimum value over all components of
arg
at each data point.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
mkDir
(*pathname)¶ creates a directory of name
pathname
if the directory does not exist.Parameters: pathname ( str
orsequence of strings
) – valid path nameNote: The method is MPI safe.
-
esys.escript.util.
mult
(arg0, arg1)¶ Product of
arg0
andarg1
.Parameters: - arg0 (
Symbol
,float
,int
,escript.Data
ornumpy.ndarray
) – first term - arg1 (
Symbol
,float
,int
,escript.Data
ornumpy.ndarray
) – second term
Returns: the product of
arg0
andarg1
Return type: Symbol
,float
,int
,escript.Data
ornumpy.ndarray
Note: The shape of both arguments is matched according to the rules used in
matchShape
.- arg0 (
-
esys.escript.util.
negative
(arg)¶ returns the negative part of arg
-
esys.escript.util.
nonsymmetric
(arg)¶ Deprecated alias for antisymmetric
-
esys.escript.util.
normalize
(arg, zerolength=0)¶ Returns the normalized version of
arg
(=``arg/length(arg)``).Parameters: - arg (
escript.Data
orSymbol
) – function - zerolength (
float
) – relative tolerance for arg == 0
Returns: normalized
arg
wherearg
is non-zero, and zero elsewhereReturn type: escript.Data
orSymbol
- arg (
-
esys.escript.util.
outer
(arg0, arg1)¶ The outer product of the two arguments. The outer product is defined as:
out[t,s]=arg0[t]*arg1[s]
- where
- s runs through
arg0.Shape
- t runs through
arg1.Shape
- s runs through
Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – first argument - arg1 (
numpy.ndarray
,escript.Data
,Symbol
,float
,int
) – second argument
Returns: the outer product of
arg0
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
phase
(arg)¶ return the “phase”/”arg”/”angle” of a number
-
esys.escript.util.
pokeDim
(arg)¶ Identifies the spatial dimension of the argument.
Parameters: arg (any) – an object whose spatial dimension is to be returned Returns: the spatial dimension of the argument, if available, or None
Return type: int
orNone
-
esys.escript.util.
polarToCart
(r, phase)¶ conversion from cartesian to polar coordinates
Parameters: - r (any float type object) – length
- phase (any float type object) – the phase angle in rad
Returns: cartesian representation as complex number
Return type: appropriate complex
-
esys.escript.util.
positive
(arg)¶ returns the positive part of arg
-
esys.escript.util.
printParallelThreadCounts
() → None¶
-
esys.escript.util.
reorderComponents
(arg, index)¶ Resorts the components of
arg
according to index.
-
esys.escript.util.
resolve
(arg)¶ Returns the value of arg resolved.
-
esys.escript.util.
safeDiv
(arg0, arg1, rtol=None)¶ returns arg0/arg1 but return 0 where arg1 is (almost) zero
-
esys.escript.util.
saveDataCSV
(filename, append=False, refid=False, sep=', ', csep='_', **data)¶ Writes
Data
objects to a CSV file. These objects must have compatible FunctionSpaces, i.e. it must be possible to interpolate all data to oneFunctionSpace
. Note, that with more than one MPI rank this function will fail for some function spaces on some domains.Parameters: - filename (
string
) – file to save data to. - append (
bool
) – IfTrue
, then open file at end rather than beginning - refid (
bool
) – IfTrue
, then a list of reference ids will be printed in the first column - sep (
string
) – separator between fields - csep – separator for components of rank 2 and above (e.g. ‘_’ -> c0_1)
The keyword args are Data objects to save. If a scalar
Data
object is passed with the namemask
, then only samples which correspond to positive values inmask
will be output. Example:s=Scalar(..) v=Vector(..) t=Tensor(..) f=float() saveDataCSV("f.csv", a=s, b=v, c=t, d=f)
Will result in a file
a, b0, b1, c0_0, c0_1, .., c1_1, d 1.0, 1.5, 2.7, 3.1, 3.4, .., 0.89, 0.0 0.9, 8.7, 1.9, 3.4, 7.8, .., 1.21, 0.0
The first line is a header, the remaining lines give the values.
- filename (
-
esys.escript.util.
saveESD
(datasetName, dataDir='.', domain=None, timeStep=0, deltaT=1, dynamicMesh=0, timeStepFormat='%04d', **data)¶ Saves
Data
objects to files and creates anescript dataset
(ESD) file for convenient processing/visualisation.Single timestep example:
tmp = Scalar(..) v = Vector(..) saveESD("solution", "data", temperature=tmp, velocity=v)
Time series example:
while t < t_end: tmp = Scalar(..) v = Vector(..) # save every 10 timesteps if t % 10 == 0: saveESD("solution", "data", timeStep=t, deltaT=10, temperature=tmp, velocity=v) t = t + 1
tmp, v and the domain are saved in native format in the “data” directory and the file “solution.esd” is created that refers to tmp by the name “temperature” and to v by the name “velocity”.
Parameters: - datasetName (
str
) – name of the dataset, used to name the ESD file - dataDir (
str
) – optional directory where the data files should be saved - domain (
escript.Domain
) – domain of theData
object(s). If not specified, the domain of the givenData
objects is used. - timeStep (
int
) – current timestep or sequence number - first one must be 0 - deltaT (
int
) – timestep or sequence increment, see example above - dynamicMesh (
int
) – by default the mesh is assumed to be static and thus only saved once at timestep 0 to save disk space. Setting this to 1 changes the behaviour and the mesh is saved at each timestep. - timeStepFormat (
str
) – timestep format string (defaults to “%04d”) - <name> (
Data
object) – writes the assigned value to the file using <name> as identifier
Note: The ESD concept is experimental and the file format likely to change so use this function with caution.
Note: The data objects have to be defined on the same domain (but not necessarily on the same
FunctionSpace
).Note: When saving a time series the first timestep must be 0 and it is assumed that data from all timesteps share the domain. The dataset file is updated in each iteration.
- datasetName (
-
esys.escript.util.
showEscriptParams
()¶ Displays the parameters escript recognises with an explanation and their current value.
-
esys.escript.util.
sign
(arg)¶ Returns the sign of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
sin
(arg)¶ Returns sine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
.) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
sinh
(arg)¶ Returns the hyperbolic sine of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
sqrt
(arg)¶ Returns the square root of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
sup
(arg)¶ Returns the maximum value over all data points.
Parameters: arg ( float
,int
,escript.Data
,numpy.ndarray
) – argumentReturns: maximum value of arg
over all components and all data pointsReturn type: float
Raises: TypeError – if type of arg
cannot be processed
-
esys.escript.util.
swap_axes
(arg, axis0=0, axis1=1)¶ Returns the swap of
arg
by swapping the componentsaxis0
andaxis1
.Parameters: - arg (
escript.Data
,Symbol
,numpy.ndarray
) – argument - axis0 (
int
) – first axis.axis0
must be non-negative and less than the rank ofarg
. - axis1 (
int
) – second axis.axis1
must be non-negative and less than the rank ofarg
.
Returns: arg
with swapped componentsReturn type: escript.Data
,Symbol
ornumpy.ndarray
depending on the type ofarg
- arg (
-
esys.escript.util.
symmetric
(arg)¶ Returns the symmetric part of the square matrix
arg
. That is, (arg+transpose(arg))/2.Parameters: arg ( numpy.ndarray
,escript.Data
,Symbol
) – input matrix. Must have rank 2 or 4 and be square.Returns: symmetric part of arg
Return type: numpy.ndarray
,escript.Data
,Symbol
depending on the input
-
esys.escript.util.
tan
(arg)¶ Returns tangent of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
tanh
(arg)¶ Returns the hyperbolic tangent of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
tensor_mult
(arg0, arg1)¶ The tensor product of the two arguments.
For
arg0
of rank 2 this isout[s0]=Sigma_{r0} arg0[s0,r0]*arg1[r0]
or
out[s0,s1]=Sigma_{r0} arg0[s0,r0]*arg1[r0,s1]
and for
arg0
of rank 4 this isout[s0,s1,s2,s3]=Sigma_{r0,r1} arg0[s0,s1,r0,r1]*arg1[r0,r1,s2,s3]
or
out[s0,s1,s2]=Sigma_{r0,r1} arg0[s0,s1,r0,r1]*arg1[r0,r1,s2]
or
out[s0,s1]=Sigma_{r0,r1} arg0[s0,s1,r0,r1]*arg1[r0,r1]
In the first case the second dimension of
arg0
and the last dimension ofarg1
must match and in the second case the two last dimensions ofarg0
must match the two first dimensions ofarg1
.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
) – first argument of rank 2 or 4 - arg1 (
numpy.ndarray
,escript.Data
,Symbol
) – second argument of shape greater than 1 or 2 depending on the rank ofarg0
Returns: the tensor product of
arg0
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the input- arg0 (
-
esys.escript.util.
tensor_transposed_mult
(arg0, arg1)¶ The tensor product of the first and the transpose of the second argument.
For
arg0
of rank 2 this isout[s0,s1]=Sigma_{r0} arg0[s0,r0]*arg1[s1,r0]
and for
arg0
of rank 4 this isout[s0,s1,s2,s3]=Sigma_{r0,r1} arg0[s0,s1,r0,r1]*arg1[s2,s3,r0,r1]
or
out[s0,s1,s2]=Sigma_{r0,r1} arg0[s0,s1,r0,r1]*arg1[s2,r0,r1]
In the first case the second dimension of
arg0
andarg1
must match and in the second case the two last dimensions ofarg0
must match the two last dimensions ofarg1
.The function call
tensor_transpose_mult(arg0,arg1)
is equivalent totensor_mult(arg0,transpose(arg1))
.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
) – first argument of rank 2 or 4 - arg1 (
numpy.ndarray
,escript.Data
,Symbol
) – second argument of shape greater of 1 or 2 depending on rank ofarg0
Returns: the tensor product of the transposed of
arg0
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the input- arg0 (
-
esys.escript.util.
tensormult
(arg0, arg1)¶ See
tensor_mult
.
-
esys.escript.util.
testForZero
(arg)¶ Tests if the argument is identical to zero.
Parameters: arg (typically numpy.ndarray
,escript.Data
,float
,int
) – the object to test for zeroReturns: True if the argument is identical to zero, False otherwise Return type: bool
-
esys.escript.util.
trace
(arg, axis_offset=0)¶ Returns the trace of
arg
which is the sum ofarg[k,k]
over k.Parameters: - arg (
escript.Data
,Symbol
,numpy.ndarray
) – argument - axis_offset (
int
) –axis_offset
to components to sum over.axis_offset
must be non-negative and less than the rank ofarg
+1. The dimensions of componentaxis_offset
and axis_offset+1 must be equal.
Returns: trace of arg. The rank of the returned object is rank of
arg
minus 2.Return type: escript.Data
,Symbol
ornumpy.ndarray
depending on the type ofarg
- arg (
-
esys.escript.util.
transpose
(arg, axis_offset=None)¶ Returns the transpose of
arg
by swapping the firstaxis_offset
and the lastrank-axis_offset
components.Parameters: - arg (
escript.Data
,Symbol
,numpy.ndarray
,float
,int
) – argument - axis_offset (
int
) – the firstaxis_offset
components are swapped with the rest.axis_offset
must be non-negative and less or equal to the rank ofarg
. Ifaxis_offset
is not presentint(r/2)
where r is the rank ofarg
is used.
Returns: transpose of
arg
Return type: escript.Data
,Symbol
,numpy.ndarray
,float
,int
depending on the type ofarg
- arg (
-
esys.escript.util.
transposed_matrix_mult
(arg0, arg1)¶ transposed(matrix)-matrix or transposed(matrix)-vector product of the two arguments.
out[s0]=Sigma_{r0} arg0[r0,s0]*arg1[r0]
or
out[s0,s1]=Sigma_{r0} arg0[r0,s0]*arg1[r0,s1]
The function call
transposed_matrix_mult(arg0,arg1)
is equivalent tomatrix_mult(transpose(arg0),arg1)
.The first dimension of
arg0
andarg1
must match.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
) – first argument of rank 2 - arg1 (
numpy.ndarray
,escript.Data
,Symbol
) – second argument of at least rank 1
Returns: the product of the transpose of
arg0
andarg1
at each data pointReturn type: numpy.ndarray
,escript.Data
,Symbol
depending on the inputRaises: ValueError – if the shapes of the arguments are not appropriate
- arg0 (
-
esys.escript.util.
transposed_tensor_mult
(arg0, arg1)¶ The tensor product of the transpose of the first and the second argument.
For
arg0
of rank 2 this isout[s0]=Sigma_{r0} arg0[r0,s0]*arg1[r0]
or
out[s0,s1]=Sigma_{r0} arg0[r0,s0]*arg1[r0,s1]
and for
arg0
of rank 4 this isout[s0,s1,s2,s3]=Sigma_{r0,r1} arg0[r0,r1,s0,s1]*arg1[r0,r1,s2,s3]
or
out[s0,s1,s2]=Sigma_{r0,r1} arg0[r0,r1,s0,s1]*arg1[r0,r1,s2]
or
out[s0,s1]=Sigma_{r0,r1} arg0[r0,r1,s0,s1]*arg1[r0,r1]
In the first case the first dimension of
arg0
and the first dimension ofarg1
must match and in the second case the two first dimensions ofarg0
must match the two first dimensions ofarg1
.The function call
transposed_tensor_mult(arg0,arg1)
is equivalent totensor_mult(transpose(arg0),arg1)
.Parameters: - arg0 (
numpy.ndarray
,escript.Data
,Symbol
) – first argument of rank 2 or 4 - arg1 (
numpy.ndarray
,escript.Data
,Symbol
) – second argument of shape greater of 1 or 2 depending on the rank ofarg0
Returns: the tensor product of transpose of arg0 and arg1 at each data point
Return type: numpy.ndarray
,escript.Data
,Symbol
depending on the input- arg0 (
-
esys.escript.util.
unitVector
(i=0, d=3)¶ Returns a unit vector u of dimension d whose non-zero element is at index i.
Parameters: - i (
int
) – index for non-zero element - d (
int
,escript.Domain
orescript.FunctionSpace
) – dimension or an object that has thegetDim
method defining the dimension
Returns: the object u of rank 1 with u[j]=1 for j=index and u[j]=0 otherwise
Return type: numpy.ndarray
orescript.Data
of rank 1- i (
-
esys.escript.util.
vol
(arg)¶ Returns the volume or area of the oject
arg
Parameters: arg ( escript.FunctionSpace
orescript.Domain
) – a geometrical objectReturn type: float
-
esys.escript.util.
whereNegative
(arg)¶ Returns mask of negative values of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
whereNonNegative
(arg)¶ Returns mask of non-negative values of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
whereNonPositive
(arg)¶ Returns mask of non-positive values of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
whereNonZero
(arg, tol=0.0)¶ Returns mask of values different from zero of argument
arg
.Parameters: - arg (
float
,escript.Data
,Symbol
,numpy.ndarray
) – argument - tol (
float
) – absolute tolerance. Values with absolute value less than tol are accepted as zero. Iftol
is not presentrtol``*```Lsup` (arg)
is used.
Return type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: - ValueError – if
rtol
is non-negative. - TypeError – if the type of the argument is not expected
- arg (
-
esys.escript.util.
wherePositive
(arg)¶ Returns mask of positive values of argument
arg
.Parameters: arg ( float
,escript.Data
,Symbol
,numpy.ndarray
.) – argumentReturn type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: TypeError – if the type of the argument is not expected
-
esys.escript.util.
whereZero
(arg, tol=None, rtol=1.4901161193847656e-08)¶ Returns mask of zero entries of argument
arg
.Parameters: - arg (
float
,escript.Data
,Symbol
,numpy.ndarray
) – argument - tol (
float
) – absolute tolerance. Values with absolute value less than tol are accepted as zero. Iftol
is not presentrtol``*```Lsup` (arg)
is used. - rtol (non-negative
float
) – relative tolerance used to define the absolute tolerance iftol
is not present.
Return type: float
,escript.Data
,Symbol
,numpy.ndarray
depending on the type ofarg
Raises: - ValueError – if
rtol
is non-negative. - TypeError – if the type of the argument is not expected
- arg (
-
esys.escript.util.
zeros
(shape=())¶ Returns the
shape
zero tensor.Parameters: shape ( tuple
ofint
) – input shape for the identity tensorReturns: array of shape filled with zeros Return type: numpy.ndarray
Others¶
- DBLE_MAX
- EPSILON