esys.escript Package¶
Classes and tools that form the basis of the escript system. Specific solvers and domains are found in their respective packages.
Classes¶
- class esys.escript.BBxInterval(minval=0, maxval=0)¶
Represents an interval for bounding box coordinates.
- __init__(minval=0, maxval=0)¶
- class esys.escript.ContinuousDomain¶
Class representing continuous domains
- __init__()¶
Raises an exception This class cannot be instantiated from Python
- addPDEToRHS((ContinuousDomain)arg1, (Data)rhs, (Data)X, (Data)Y, (Data)y, (Data)y_contact, (Data)y_dirac) None :¶
adds a PDE onto the stiffness matrix mat and a rhs
- addPDEToSystem((ContinuousDomain)arg1, (Operator)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, (Data)d_dirac, (Data)y_dirac) None :¶
adds a PDE onto the stiffness matrix mat and a rhs
- addPDEToTransportProblem((ContinuousDomain)arg1, (TransportProblem)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, (Data)d_dirac, (Data)y_dirac) None :¶
- getDataShape((ContinuousDomain)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((ContinuousDomain)arg1) str :¶
- Returns:
a description for this domain
- Return type:
string
- getFramework((ContinuousDomain)arg1) SolverFramework :¶
Returns the SolverFramework attached to this domain.
- Return type:
- getNumDataPointsGlobal((ContinuousDomain)arg1) int :¶
- Returns:
the number of data points summed across all MPI processes
- Return type:
int
- getSystemMatrixTypeId((ContinuousDomain)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
- getTransportTypeId((ContinuousDomain)arg1, (int)solver, (int)preconditioner, (int)package, (bool)symmetry) int¶
- newOperator((ContinuousDomain)arg1, (int)row_blocksize, (FunctionSpace)row_functionspace, (int)column_blocksize, (FunctionSpace)column_functionspace, (int)type) Operator :¶
creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros
- Parameters:
row_blocksize (
int)row_functionspace (
FunctionSpace)column_blocksize (
int)column_functionspace (
FunctionSpace)type (
int)
- newTransportProblem((ContinuousDomain)theta, (int)blocksize, (FunctionSpace)functionspace, (int)type) TransportProblem :¶
creates a TransportProblemAdapter
- Parameters:
theta (
float)blocksize (
int)functionspace (
FunctionSpace)type (
int)
- print_mesh_info((ContinuousDomain)arg1[, (bool)full=False]) None :¶
- Parameters:
full (
bool)
- setFramework((ContinuousDomain)arg1, (SolverFramework)framework) None :¶
Attach a SolverFramework to this domain. Must be called before the domain is first used for solving. Raises an exception if called a second time.
- Parameters:
framework (
SolverFramework) – the solver backend to use
- class esys.escript.Data¶
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
- 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
otherafter 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
otherData.Datapoints which correspond to positive values inmaskwill be copied fromother
- delay((Data)arg1) Data :¶
Convert this object into lazy representation
- dump((Data)arg1, (str)fileName) None :¶
Save the data as a HDF5 file
- Parameters:
fileName (
string)
- expand((Data)arg1) None :¶
Convert the data to expanded representation if it is not expanded already.
- getFunctionSpace((Data)arg1) FunctionSpace :¶
- Return type:
- getMPIComm((Data)arg1) object :¶
- Returns:
the MPI communicator for this data’s domain as an mpi4py.MPI.Comm object (or None if MPI/mpi4py not enabled)
- Return type:
mpi4py.MPI.Comm or None
- 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 processdataPointNo (int) – datapoint to access
- 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.]
- 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)Amust be the outer dimension on the table- param 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:
- 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:
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
Datastores complex values.
- isConstant((Data)arg1) bool :¶
- Return type:
bool- Returns:
True if this
Datais 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
Datais expanded.
- isLazy((Data)arg1) bool :¶
- Return type:
bool- Returns:
True if this
Datais lazy.
- isProtected((Data)arg1) bool :¶
Can this instance be modified. :rtype:
bool
- isReady((Data)arg1) bool :¶
- Return type:
bool- Returns:
True if this
Datais not lazy.
- isTagged((Data)arg1) bool :¶
- Return type:
bool- Returns:
True if this
Datais 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
- promote((Data)arg1) None¶
- 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:
objectwhich acts like an array,tupleorlist
- 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:
floator an object which acts like an array,tupleorlist- 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.DataManager(formats=[0], work_dir='.', restart_prefix='restart', do_restart=True)¶
Escript data import/export manager.
Example:
dm=DataManager(formats=[DataManager.RESTART,DataManager.VTK]) if dm.hasData(): dom = dm.getDomain() time = dm.getValue("time") dt = dm.getValue("dt") T = dm.getValue("T") u = dm.getValue("u") else: T = ... u = ... dm.addData(time=time,dt=dt,T=T,u=u) # add data and variables dm.setTime(time) # set the simulation timestamp dm.export() # write out data
- __init__(formats=[0], work_dir='.', restart_prefix='restart', do_restart=True)¶
Initialises the data manager. If do_restart is True and a restart directory is found the contained data is loaded (hasData() returns True) otherwise restart directories are removed (hasData() returns False). Values are only written to disk when export() is called.
- Parameters:
formats – A list of export file formats to use. Allowed values are RESTART, SILO, VISIT, VTK.
work_dir – top-level directory where files are exported to
restart_prefix – prefix for restart directories. Will be used to load restart files (if do_restart is True) and store new restart files (if RESTART is used)
do_restart – whether to attempt to load restart files
- RESTART = 0¶
- SILO = 1¶
- VISIT = 2¶
- VTK = 3¶
- addData(**data)¶
Adds ‘escript.Data’ objects and other data to be exported to this manager.
- Note:
This method does not make copies of Data objects so any modifications will be carried over until export() is called.
- export()¶
Executes the actual data export. Depending on the formats parameter used in the constructor all data added by addData() is written to disk (RESTART,SILO,VTK) or made available through the VisIt simulation interface (VISIT).
- getCycle()¶
Returns the export cycle (=number of times export() has been called).
- Returns:
the current export cycle number
- Return type:
int
- getDomain()¶
Returns the domain as recovered from restart files.
- Returns:
the domain loaded from restart files
- Return type:
- Raises:
ValueError – if no restart data is available
- getValue(value_name)¶
Returns an ‘escript.Data’ object or other value that has been loaded from restart files.
- Parameters:
value_name (
str) – name of the value to retrieve- Returns:
the requested data object or value
- Return type:
Dataor other type depending on what was stored- Raises:
ValueError – if no restart data is available
- hasData()¶
Returns True if the manager holds data for restart.
- Returns:
Trueif restart data is available,Falseotherwise- Return type:
bool
- setCheckpointFrequency(freq)¶
Sets the number of calls to export() before new restart files are generated.
- Parameters:
freq (
int) – checkpoint frequency (1 = every export, 2 = every other, etc.)
- setDomain(domain)¶
Sets the domain without adding data.
- Parameters:
domain (
Domain) – the escript domain to set- Raises:
ValueError – if a different domain has already been set
- setMeshLabels(x, y, z='')¶
Sets labels for the mesh axes. These are currently only used by the Silo exporter.
- Parameters:
x (
str) – label for the x-axisy (
str) – label for the y-axisz (
str) – label for the z-axis (optional for 2D)
- setMeshUnits(x, y, z='')¶
Sets units for the mesh axes. These are currently only used by the Silo exporter.
- Parameters:
x (
str) – unit for the x-axisy (
str) – unit for the y-axisz (
str) – unit for the z-axis (optional for 2D)
- setMetadataSchemaString(schema, metadata='')¶
Sets metadata namespaces and the corresponding metadata. Only used for the VTK file format at the moment.
- Parameters:
schema – A dictionary that maps namespace prefixes to namespace names, e.g. {‘gml’:’http://www.opengis.net/gml’}
metadata – The actual metadata string which will be enclosed in ‘<MetaData>’ tags.
- setTime(time)¶
Sets the simulation timestamp.
- Parameters:
time (
float) – the current simulation time
- class esys.escript.Domain¶
Base class for all domains.
- __init__()¶
Raises an exception This class cannot be instantiated from Python
- MPIBarrier((Domain)arg1) None :¶
Wait until all processes have reached this point
- dump((Domain)arg1, (str)filename) None :¶
Dumps the domain to a file
- Parameters:
filename (string)
- getMPIComm((Domain)arg1) object :¶
- Returns:
the MPI communicator for this domain as an mpi4py.MPI.Comm object (or None if MPI/mpi4py not enabled)
- Return type:
mpi4py.MPI.Comm or None
- getMPIRank((Domain)arg1) int :¶
- Returns:
the rank of this process
- Return type:
int
- getMPISize((Domain)arg1) int :¶
- Returns:
the number of processes used for this
Domain- Return type:
int
- getNormal((Domain)arg1) Data :¶
- Return type:
escript- Returns:
Boundary normals
- getSize((Domain)arg1) Data :¶
- Returns:
the local size of samples. The function space is chosen appropriately
- Return type:
- getStatus((Domain)arg1) int :¶
The status of a domain changes whenever the domain is modified
- Return type:
int
- getTag((Domain)arg1, (str)name) int :¶
- Returns:
tag id for
name- Return type:
string
- getX((Domain)arg1) Data :¶
- Return type:
- Returns:
Locations in the`Domain`. FunctionSpace is chosen appropriately
- isRootRank((Domain)arg1) bool :¶
- Returns:
True if this code is executing on the root rank (rank 0)
- Return type:
bool
- isValidTagName((Domain)arg1, (str)name) bool :¶
- Returns:
True is
namecorresponds to a tag- Return type:
bool
- setTagMap((Domain)arg1, (str)name, (int)tag) None :¶
Give a tag number a name.
- Parameters:
name (
string) – Name for the tagtag (
int) – numeric id
- Note:
Tag names must be unique within a domain
- showTagNames((Domain)arg1) str :¶
- Returns:
A space separated list of tag names
- Return type:
string
- supportsContactElements((Domain)arg1) bool :¶
Does this domain support contact elements.
- class esys.escript.FileWriter(fn, append=False, createLocalFiles=False)¶
Interface to write data to a file. In essence this class wraps the standard
fileobject to write data that are global in MPI to a file. In fact, data are written on the processor with MPI rank 0 only. It is recommended to useFileWriterrather thanopenin order to write code that is running with as well as without MPI. It is safe to useopenunder 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 separator
- __init__(fn, append=False, createLocalFiles=False)¶
Opens a file of name
fnfor writing. If running under MPI only the first processor with rank==0 will open the file and write to it. IfcreateLocalFileseach 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) – if True, open file for appending rather than overwritingcreateLocalFiles (
bool) – switches on the creation of local files.
- close()¶
Closes the file
- flush()¶
Flush the internal I/O buffer.
- write(txt)¶
Write string
txtto file.- Parameters:
txt (
str) – stringtxtto be written to file
- writelines(txts)¶
Write the list
txtsof strings to the file.- Parameters:
txts (any iterable object producing strings) – sequence of strings to be written to file
- Note:
Note that newlines are not added. This method is equivalent to calling write() for each string.
- class esys.escript.FunctionSpace¶
A FunctionSpace describes which points from the
Domainto use to represent functions.- __init__((object)arg1) None¶
- getApproximationOrder((FunctionSpace)arg1) int :¶
- Returns:
the approximation order referring to the maximum degree of a polynomial which can be represented exactly in interpolation and/or integration.
- Return type:
int
- getDim((FunctionSpace)arg1) int :¶
- Returns:
the spatial dimension of the underlying domain.
- Return type:
int
- getDomain((FunctionSpace)arg1) Domain :¶
- getListOfTags((FunctionSpace)arg1) list :¶
- Returns:
a list of the tags used in this function space
- Return type:
list
- getMPIComm((FunctionSpace)arg1) object :¶
- Returns:
the MPI communicator for this function space’s domain as an mpi4py.MPI.Comm object (or None if MPI/mpi4py not enabled)
- Return type:
mpi4py.MPI.Comm or None
- getReferenceIDFromDataPointNo((FunctionSpace)arg1, (int)dataPointNo) int :¶
- Returns:
the reference number associated with
dataPointNo- Return type:
int
- getTagFromDataPointNo((FunctionSpace)arg1, (int)arg2) int :¶
- Returns:
the tag associated with the given sample number.
- Return type:
int
- getTypeCode((FunctionSpace)arg1) int :¶
- Return type:
int
- getX((FunctionSpace)arg1) Data :¶
- Returns:
a function whose values are its input coordinates. ie an identity function.
- Return type:
- setTags((FunctionSpace)arg1, (int)newtag, (Data)mask) None :¶
Set tags according to a mask
- param newtag:
tag number to set
- type newtag:
string, non-zero
int- param mask:
Samples which correspond to positive values in the mask will be set to
newtag.- type mask:
scalar
Data
setTags( (FunctionSpace)arg1, (str)newtag, (Data)mask) -> None
- class esys.escript.InterpolationTable(table, origin, step=None, extend=None, order=1, undef=1e+50, check_boundaries=False, table_indexing='ijk')¶
Interpolates values from a regular-grid lookup table onto a mesh.
The coordinate data x passed to
__call__()determines the interpolation dimension:x.getShape()Lookup dim
Required table rank
()1-D
1 — shape
(nx,)(1,)1-D
1 — shape
(nx,)(2,)2-D
2
(3,)3-D
3
The returned
Dataobject is always scalar (shape()). If the table contains complex values the result is complexData; the coordinateDatax must always be real.Table indexing convention (controlled by table_indexing):
"ijk"(default) — natural numpy order: the first index varies along the x-axis, the second along y, the third along z. Shapes:(nx,)/(nx, ny)/(nx, ny, nz)."kji"— legacy / C++ order: the first index varies along the z-axis, the second along y, the third along x. Shapes:(nx,)/(ny, nx)/(nz, ny, nx).
Example usage:
import numpy as np from esys.finley import Rectangle from esys.escript import Function from esys.escriptcore.interpolation import InterpolationTable dom = Rectangle(20, 20) x = Function(dom).getX() # shape (2,) # 2-D scalar table, "ijk" convention: shape (nx, ny) t = np.random.rand(5, 5) interp = InterpolationTable(t, origin=(0., 0.), step=(0.25, 0.25)) result = interp(x) # Equivalent using total extent (covers [0,1] x [0,1]) interp = InterpolationTable(t, origin=(0., 0.), extend=(1., 1.)) result = interp(x) # Order-0 (piecewise constant) interpolation interp0 = InterpolationTable(t, origin=(0., 0.), extend=(1., 1.), order=0) result0 = interp0(x)
- Parameters:
table (
numpy.ndarray) – lookup table as a numpy array of rank 1, 2, or 3origin (
floatortupleoffloat) – coordinate(s) of the first table entry; a single float for 1-D or a tuple for 2-D / 3-Dstep (
floatortupleoffloat) – cell size(s), i.e. the spacing between adjacent table entries; all values must be strictly positive. Exactly one of step and extend must be supplied.extend (
floatortupleoffloat) – total extent of the table domain along each coordinate axis. For order-1: distance from the first to the last sample point along axis i (step[i] = extend[i] / (n_i - 1)). For order-0: total domain width along axis i (step[i] = extend[i] / n_i), where n_i is the number of cells along that axis. Exactly one of step and extend must be supplied.order (
int) – interpolation order — 0 for piecewise constant, 1 for linear (default)undef (
float) – upper threshold; result values above this trigger aRuntimeErrorcheck_boundaries (
bool) – ifTrue, aRuntimeErroris raised when a coordinate lies outside the table extent; otherwise the nearest boundary value is usedtable_indexing (
str) – indexing convention for the table array."ijk"(default) — first index = x-axis, natural numpy order."kji"— first index = z-axis, legacy C++ order.
- __init__(table, origin, step=None, extend=None, order=1, undef=1e+50, check_boundaries=False, table_indexing='ijk')¶
- getExtend()¶
Return the tuple of domain extents along each coordinate axis.
For order-1:
extend[i] = step[i] * (n_i - 1)(distance from first to last sample point along axis i).For order-0:
extend[i] = step[i] * n_i(total domain width; domain along axis i is[origin[i], origin[i] + extend[i]]).Here n_i is the number of table entries along coordinate axis i (independent of the table_indexing convention).
- getNdim()¶
Return the number of coordinate dimensions (1, 2, or 3).
- getOrder()¶
Return the interpolation order (0 or 1).
- getOrigin()¶
Return the tuple of starting coordinates.
- getStep()¶
Return the tuple of cell sizes.
- getTableIndexing()¶
Return the table indexing convention (
'ijk'or'kji').
- interpolate(x)¶
Alias for
__call__().
- class esys.escript.NonlinearPDE(domain, u, debug=0)¶
This class is used to define a general nonlinear, steady, second order PDE for an unknown function u on a given domain defined through a
Domainobject.For a single PDE having a solution with a single component the nonlinear PDE is defined in the following form:
-div(X) + Y = 0
where X,*Y*=f(u,*grad(u)*). div(F) denotes the divergence of F and grad(F) is the spatial derivative of F.
The coefficients X (rank 1) and Y (scalar) have to be specified through
Symbolobjects.The following natural boundary conditions are considered:
n[j]*X[j] + y = 0
where n is the outer normal field. Notice that the coefficient X is defined in the PDE. The coefficient y is a scalar
Symbol.Constraints for the solution prescribe the value of the solution at certain locations in the domain. They have the form
u=r where q>0
r and q are each scalar where q is the characteristic function defining where the constraint is applied. The constraints override any other condition set by the PDE or the boundary condition.
For a system of PDEs and a solution with several components, u is rank one, while the PDE coefficient X is rank two and y is rank one.
The PDE is solved by linearising the coefficients and iteratively solving the corresponding linear PDE until the error is smaller than a tolerance or a maximum number of iterations is reached.
Typical usage:
u = Symbol('u', dim=dom.getDim()) p = NonlinearPDE(dom, u) p.setValue(X=grad(u), Y=1+5*u) v = p.getSolution(u=0.)
- __init__(domain, u, debug=0)¶
Initializes a new nonlinear PDE.
- Parameters:
domain (
Domain) – domain of the PDEu (
Symbol) – The symbol for the unknown PDE function u.debug (
int(one of DEBUG0, DEBUG1, DEBUG2, DEBUG3, DEBUG4)) – level of debug information to be printed
- DEBUG0 = 0¶
- DEBUG1 = 1¶
- DEBUG2 = 2¶
- DEBUG3 = 3¶
- DEBUG4 = 4¶
- ORDER = 0¶
- createCoefficient(name)¶
Creates a new coefficient
nameas Symbol- Parameters:
name (
string) – name of the coefficient requested- Returns:
the value of the coefficient
- Return type:
SymbolorData(for name = “q”)- Raises:
IllegalCoefficient – if
nameis not a coefficient of the PDE
- getCoefficient(name)¶
Returns the value of the coefficient
nameas Symbol- Parameters:
name (
string) – name of the coefficient requested- Returns:
the value of the coefficient
- Return type:
Symbol- Raises:
IllegalCoefficient – if
nameis not a coefficient of the PDE
- getLinearPDE()¶
Returns the linear PDE used to calculate the Newton-Raphson update
- Return type:
LinearPDE
- getLinearSolverOptions()¶
Returns the options of the linear PDE solver class
- getNumSolutions()¶
Returns the number of the solution components :rtype:
int
- getSensitivity(f, g=None, **subs)¶
Calculates the sensitivity of the solution of an input factor
fin directiong.- Parameters:
f (
Symbol) – the input factor to be investigated.fmay be of rank 0 or 1.g (
listor single offloat,numpy.arrayorData.) – the direction(s) of change. If not present, it is g=eye(n) wherenis the number of components off.subs – Substitutions for all symbols used in the coefficients including unknown u and the input factor
fto be investigated
- Returns:
the sensitivity
- Return type:
Datawith shape u.getShape()+(len(g),) if len(g)>1 or u.getShape() if len(g)==1
- getShapeOfCoefficient(name)¶
Returns the shape of the coefficient
name- Parameters:
name (
string) – name of the coefficient enquired- Returns:
the shape of the coefficient
name- Return type:
tupleofint- Raises:
IllegalCoefficient – if
nameis not a coefficient of the PDE
- getSolution(**subs)¶
Returns the solution of the PDE.
- Parameters:
subs – Substitutions for all symbols used in the coefficients including the initial value for the unknown u.
- Returns:
the solution
- Return type:
- getUnknownSymbol()¶
Returns the symbol of the PDE unknown
- Returns:
the symbol of the PDE unknown
- Return type:
Symbol
- setOptions(**opts)¶
Allows setting options for the nonlinear PDE.
- The supported options are:
toleranceerror tolerance for the Newton method
iteration_steps_maxmaximum number of Newton iterations
omega_minminimum relaxation factor
atolsolution norms less than
atolare assumed to beatol. This can be useful if one of your solutions is expected to be zero.quadratic_convergence_limitif the norm of the Newton-Raphson correction is reduced by less than
quadratic_convergence_limitbetween two iteration steps quadratic convergence is assumed.simplified_newton_limitif the norm of the defect is reduced by less than
simplified_newton_limitbetween two iteration steps and quadratic convergence is detected the iteration switches to the simplified Newton-Raphson scheme.
- setValue(**coefficients)¶
Sets new values to one or more coefficients.
- Parameters:
coefficients – new values assigned to coefficients
coefficients – new values assigned to coefficients
X (
Symbolor any type that can be cast to aDataobject) – value for coefficientXY (
Symbolor any type that can be cast to aDataobject) – value for coefficientYy (
Symbolor any type that can be cast to aDataobject) – value for coefficientyy_contact (
Symbolor any type that can be cast to aDataobject) – value for coefficienty_contacty_dirac (
Symbolor any type that can be cast to aDataobject) – value for coefficienty_diracq (any type that can be cast to a
Dataobject) – mask for location of constraintr (
Symbolor any type that can be cast to aDataobject) – value of solution prescribed by constraint
- Raises:
IllegalCoefficient – if an unknown coefficient keyword is used
IllegalCoefficientValue – if a supplied coefficient value has an invalid shape
- trace1(text)¶
Prints the text message if the debug level is greater than DEBUG0
- Parameters:
text (
string) – message to be printed
- trace3(text)¶
Prints the text message if the debug level is greater than DEBUG3
- Parameters:
text (
string) – message to be printed
- class esys.escript.Operator¶
- __init__((object)arg1) None¶
- isEmpty((Operator)arg1) bool :¶
- Return type:
bool- Returns:
True if matrix is empty
- nullifyRowsAndCols((Operator)arg1, (Data)arg2, (Data)arg3, (float)arg4) None¶
- of((Operator)arg1, (Data)right) Data :¶
matrix*vector multiplication
- resetValues((Operator)arg1, (bool)arg2) None :¶
resets the matrix entries
- saveHB((Operator)arg1, (str)filename) None :¶
writes the matrix to a file using the Harwell-Boeing file format
- saveMM((Operator)arg1, (str)fileName) None :¶
writes the matrix to a file using the Matrix Market file format
- class esys.escript.SolverBuddy¶
- __init__((object)arg1) None¶
- acceptConvergenceFailure((SolverBuddy)arg1) bool :¶
Returns
Trueif a failure to meet the stopping criteria within the given number of iteration steps is not raising in exception. This is useful if a solver is used in a non-linear context where the non-linear solver can continue even if the returned the solution does not necessarily meet the stopping criteria. One can use thehasConvergedmethod to check if the last call to the solver was successful.- Returns:
Trueif a failure to achieve convergence is accepted.- Return type:
bool
- adaptInnerTolerance((SolverBuddy)arg1) bool :¶
Returns
Trueif the tolerance of the inner solver is selected automatically. Otherwise the inner tolerance set bysetInnerToleranceis used.- Returns:
Trueif inner tolerance adaption is chosen.- Return type:
bool
- getAbsoluteTolerance((SolverBuddy)arg1) float :¶
Returns the absolute tolerance for the solver
- Return type:
float
- getDiagnostics((SolverBuddy)arg1, (str)name) float :¶
Returns the diagnostic information
name. Possible values are:‘num_iter’: the number of iteration steps
‘cum_num_iter’: the cumulative number of iteration steps
‘num_level’: the number of level in multi level solver
‘num_inner_iter’: the number of inner iteration steps
‘cum_num_inner_iter’: the cumulative number of inner iteration steps
‘time’: execution time
‘cum_time’: cumulative execution time
‘set_up_time’: time to set up of the solver, typically this includes factorization and reordering
‘cum_set_up_time’: cumulative time to set up of the solver
‘net_time’: net execution time, excluding setup time for the solver and execution time for preconditioner
‘cum_net_time’: cumulative net execution time
‘preconditioner_size’: size of preconditioner [Bytes]
‘converged’: return True if solution has converged.
‘time_step_backtracking_used’: returns True if time step back tracking has been used.
‘coarse_level_sparsity’: returns the sparsity of the matrix on the coarsest level
‘num_coarse_unknowns’: returns the number of unknowns on the coarsest level
- Parameters:
name (
strin the list above.) – name of diagnostic information to return- Returns:
requested value. 0 is returned if the value is yet to be defined.
- Note:
If the solver has thrown an exception diagnostic values have an undefined status.
- getDim((SolverBuddy)arg1) int :¶
Returns the dimension of the problem.
- Return type:
int
- getDropStorage((SolverBuddy)arg1) float :¶
Returns the maximum allowed increase in storage for ILUT
- Return type:
float
- getDropTolerance((SolverBuddy)arg1) float :¶
Returns the relative drop tolerance in ILUT
- Return type:
float
- getInnerIterMax((SolverBuddy)arg1) int :¶
Returns maximum number of inner iteration steps
- Return type:
int
- getInnerTolerance((SolverBuddy)arg1) float :¶
Returns the relative tolerance for an inner iteration scheme
- Return type:
float
- getIterMax((SolverBuddy)arg1) int :¶
Returns maximum number of iteration steps
- Return type:
int
- getName((SolverBuddy)arg1, (int)key) str :¶
Returns the name of a given key
- Parameters:
key – a valid key
- getNumRefinements((SolverBuddy)arg1) int :¶
Returns the number of refinement steps to refine the solution when a direct solver is applied.
- Return type:
non-negative
int
- getNumSweeps((SolverBuddy)arg1) int :¶
Returns the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.
- Return type:
int
- getODESolver((SolverBuddy)arg1) SolverOptions :¶
Returns key of the solver method for ODEs.
- Parameters:
method (in
CRANK_NICOLSON,BACKWARD_EULER,LINEAR_CRANK_NICOLSON) – key of the ODE solver method to be used.
- getOxleyDomain((SolverBuddy)arg1) bool :¶
True if we are using an Oxley domain, False otherwise.
- Return type:
non-negative
int
- getPackage((SolverBuddy)arg1) SolverOptions :¶
Returns the solver package key
- Return type:
in the list
DEFAULT,MKL,UMFPACK,MUMPS
- getPreconditioner((SolverBuddy)arg1) SolverOptions :¶
Returns the key of the preconditioner to be used.
- Return type:
in the list
ILU0,ILUT,JACOBI,AMG,REC_ILU,GAUSS_SEIDEL,RILU,NO_PRECONDITIONER
- getRelaxationFactor((SolverBuddy)arg1) float :¶
Returns the relaxation factor used to add dropped elements in RILU to the main diagonal.
- Return type:
float
- getReordering((SolverBuddy)arg1) SolverOptions :¶
Returns the key of the reordering method to be applied if supported by the solver.
- Return type:
in
NO_REORDERING,MINIMUM_FILL_IN,NESTED_DISSECTION,DEFAULT_REORDERING
- getRestart((SolverBuddy)arg1) int :¶
Returns the number of iterations steps after which GMRES performs a restart. If 0 is returned no restart is performed.
- Return type:
int
- getSolverMethod((SolverBuddy)arg1) SolverOptions :¶
Returns key of the solver method to be used.
- Return type:
in the list
DEFAULT,DIRECT,CHOLEVSKY,PCG,CR,CGS,BICGSTAB,GMRES,PRES20,ROWSUM_LUMPING,HRZ_LUMPING,MINRES,ITERATIVE,NONLINEAR_GMRES,TFQMR
- getSummary((SolverBuddy)arg1) str :¶
Returns a string reporting the current settings
- getTolerance((SolverBuddy)arg1) float :¶
Returns the relative tolerance for the solver
- Return type:
float
- getTrilinosParameters((SolverBuddy)arg1) dict :¶
Returns a dictionary of set Trilinos parameters.
:note This method returns an empty dictionary in a non-Trilinos build.
- getTruncation((SolverBuddy)arg1) int :¶
Returns the number of residuals in GMRES to be stored for orthogonalization
- Return type:
int
- hasConverged((SolverBuddy)arg1) bool :¶
Returns
Trueif the last solver call has been finalized successfully.- Note:
if an exception has been thrown by the solver the status of thisflag is undefined.
- isComplex((SolverBuddy)arg1) bool :¶
Checks if the coefficient matrix is set to be complex-valued.
- Returns:
True if a complex-valued PDE is indicated, False otherwise
- Return type:
bool
- isHermitian((SolverBuddy)arg1) bool :¶
Checks if the coefficient matrix is indicated to be Hermitian.
- Returns:
True if a hermitian PDE is indicated, False otherwise
- Return type:
bool
- isSymmetric((SolverBuddy)arg1) bool :¶
Checks if symmetry of the coefficient matrix is indicated.
- Returns:
True if a symmetric PDE is indicated, False otherwise
- Return type:
bool
- isVerbose((SolverBuddy)arg1) bool :¶
Returns
Trueif the solver is expected to be verbose.- Returns:
True if verbosity of switched on.
- Return type:
bool
- resetDiagnostics((SolverBuddy)arg1[, (bool)all=False]) None :¶
Resets the diagnostics
- Parameters:
all (
bool) – ifallisTrueall diagnostics including accumulative counters are reset.
- setAbsoluteTolerance((SolverBuddy)arg1, (float)atol) None :¶
Sets the absolute tolerance for the solver
- Parameters:
atol (non-negative
float) – absolute tolerance
- setAcceptanceConvergenceFailure((SolverBuddy)arg1, (bool)accept) None :¶
Sets the flag to indicate the acceptance of a failure of convergence.
- Parameters:
accept (
bool) – IfTrue, any failure to achieve convergence is accepted.
- setAcceptanceConvergenceFailureOff((SolverBuddy)arg1) None :¶
Switches the acceptance of a failure of convergence off.
- setAcceptanceConvergenceFailureOn((SolverBuddy)arg1) None :¶
Switches the acceptance of a failure of convergence on
- setComplex((SolverBuddy)arg1, (bool)complex) None :¶
Sets the complex flag for the coefficient matrix to
flag.- Parameters:
flag (
bool) – If True, the complex flag is set otherwise reset.
- setDim((SolverBuddy)arg1, (int)dim) None :¶
Sets the dimension of the problem.
- Parameters:
dim – Either 2 or 3.
- Return type:
int
- setDropStorage((SolverBuddy)arg1, (float)drop) None :¶
Sets the maximum allowed increase in storage for ILUT.
storage=2 would mean that a doubling of the storage needed for the coefficient matrix is allowed in the ILUT factorization.- Parameters:
storage (
float) – allowed storage increase
- setDropTolerance((SolverBuddy)arg1, (float)drop_tol) None :¶
Sets the relative drop tolerance in ILUT
- Parameters:
drop_tol (positive
float) – drop tolerance
- setHermitian((SolverBuddy)arg1, (bool)hermitian) None :¶
Sets the hermitian flag for the coefficient matrix to
flag.- Parameters:
flag (
bool) – If True, the hermitian flag is set otherwise reset.
- setHermitianOff((SolverBuddy)arg1) None :¶
Clears the hermitian flag for the coefficient matrix.
- setHermitianOn((SolverBuddy)arg1) None :¶
Sets the hermitian flag to indicate that the coefficient matrix is hermitian.
- setInnerIterMax((SolverBuddy)arg1, (int)iter_max) None :¶
Sets the maximum number of iteration steps for the inner iteration.
- Parameters:
iter_max (
int) – maximum number of inner iterations
- setInnerTolerance((SolverBuddy)arg1, (float)rtol) None :¶
Sets the relative tolerance for an inner iteration scheme, for instance on the coarsest level in a multi-level scheme.
- Parameters:
rtol (positive
float) – inner relative tolerance
- setInnerToleranceAdaption((SolverBuddy)arg1, (bool)adapt) None :¶
Sets the flag to indicate automatic selection of the inner tolerance.
- Parameters:
adapt (
bool) – IfTrue, the inner tolerance is selected automatically.
- setInnerToleranceAdaptionOff((SolverBuddy)arg1) None :¶
Switches the automatic selection of inner tolerance off.
- setInnerToleranceAdaptionOn((SolverBuddy)arg1) None :¶
Switches the automatic selection of inner tolerance on
- setIterMax((SolverBuddy)arg1, (int)iter_max) None :¶
Sets the maximum number of iteration steps
- Parameters:
iter_max (
int) – maximum number of iteration steps
- setLocalPreconditioner((SolverBuddy)arg1, (bool)local) None :¶
Sets the flag to use local preconditioning
- Parameters:
use (
bool) – IfTrue, local preconditioning on each MPI rank is applied
- setLocalPreconditionerOff((SolverBuddy)arg1) None :¶
Sets the flag to use local preconditioning to off
- setLocalPreconditionerOn((SolverBuddy)arg1) None :¶
Sets the flag to use local preconditioning to on
- setNumRefinements((SolverBuddy)arg1, (int)refinements) None :¶
Sets the number of refinement steps to refine the solution when a direct solver is applied.
- Parameters:
refinements (non-negative
int) – number of refinements
- setNumSweeps((SolverBuddy)arg1, (int)sweeps) None :¶
Sets the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.
- Parameters:
sweeps (positive
int) – number of sweeps
- setODESolver((SolverBuddy)arg1, (int)solver) None :¶
Set the solver method for ODEs.
- Parameters:
method (in
CRANK_NICOLSON,BACKWARD_EULER,LINEAR_CRANK_NICOLSON) – key of the ODE solver method to be used.
- setOxleyDomain((SolverBuddy)arg1, (bool)using_oxley) None :¶
Sets the parameter Oxley_Domain.
- Return type:
non-negative
int
- setPackage((SolverBuddy)arg1, (int)package) None :¶
Sets the direct-solver sub-library to use within the Paso framework.
- Parameters:
package (in
DEFAULT,MKL,UMFPACK,MUMPS) – key of the solver package to be used.- Note:
Not all packages are supported on all platforms. An exception may be thrown if a particular package is not available.
- setPreconditioner((SolverBuddy)arg1, (int)preconditioner) None :¶
Sets the preconditioner to be used.
- Parameters:
preconditioner (in
ILU0,ILUT,JACOBI,AMG, ,REC_ILU,GAUSS_SEIDEL,RILU,NO_PRECONDITIONER) – key of the preconditioner to be used.- Note:
Not all packages support all preconditioner. It can be assumed that a package makes a reasonable choice if it encounters an unknownpreconditioner.
- setRelaxationFactor((SolverBuddy)arg1, (float)relaxation) None :¶
Sets the relaxation factor used to add dropped elements in RILU to the main diagonal.
- Parameters:
factor (
float) – relaxation factor- Note:
RILU with a relaxation factor 0 is identical to ILU0
- setReordering((SolverBuddy)arg1, (int)ordering) None :¶
Sets the key of the reordering method to be applied if supported by the solver. Some direct solvers support reordering to optimize compute time and storage use during elimination.
- Parameters:
ordering (in 'NO_REORDERING', 'MINIMUM_FILL_IN', 'NESTED_DISSECTION', 'DEFAULT_REORDERING') – selects the reordering strategy.
- setRestart((SolverBuddy)arg1, (int)restart) None :¶
Sets the number of iterations steps after which GMRES performs a restart.
- Parameters:
restart (
int) – number of iteration steps after which to perform a restart. If 0 no restart is performed.
- setSolverMethod((SolverBuddy)arg1, (int)method) None :¶
Sets the solver method to be used. Use
method``=``DIRECTto indicate that a direct rather than an iterative solver should be used and usemethod``=``ITERATIVEto indicate that an iterative rather than a direct solver should be used.- Parameters:
method (in
DEFAULT,DIRECT,CHOLEVSKY,PCG,CR,CGS,BICGSTAB,GMRES,PRES20,ROWSUM_LUMPING,HRZ_LUMPING,ITERATIVE,NONLINEAR_GMRES,TFQMR,MINRES) – key of the solver method to be used.- Note:
Not all packages support all solvers. It can be assumed that a package makes a reasonable choice if it encounters an unknown solver method.
- setSymmetry((SolverBuddy)arg1, (bool)symmetry) None :¶
Sets the symmetry flag for the coefficient matrix to
flag.- Parameters:
flag (
bool) – If True, the symmetry flag is set otherwise reset.
- setSymmetryOff((SolverBuddy)arg1) None :¶
Clears the symmetry flag for the coefficient matrix.
- setSymmetryOn((SolverBuddy)arg1) None :¶
Sets the symmetry flag to indicate that the coefficient matrix is symmetric.
- setTolerance((SolverBuddy)arg1, (float)rtol) None :¶
Sets the relative tolerance for the solver
- Parameters:
rtol (non-negative
float) – relative tolerance
- setTrilinosParameter((SolverBuddy)arg1, (str)arg2, (object)arg3) None :¶
Sets a Trilinos preconditioner/solver parameter.
:note Escript does not check for validity of the parameter name (e.g. spelling mistakes). Parameters are passed 1:1 to escript’s Trilinos wrapper and from there to the relevant Trilinos package. See the relevant Trilinos documentation for valid parameter strings and values.:note This method does nothing in a non-Trilinos build.
- setTruncation((SolverBuddy)arg1, (int)truncation) None :¶
Sets the number of residuals in GMRES to be stored for orthogonalization. The more residuals are stored the faster GMRES converged
- Parameters:
truncation (
int) – truncation
- setVerbosity((SolverBuddy)arg1, (bool)verbosity) None :¶
Sets the verbosity flag for the solver to
flag.- Parameters:
verbose (
bool) – IfTrue, the verbosity of the solver is switched on.
- setVerbosityOff((SolverBuddy)arg1) None :¶
Switches the verbosity of the solver off.
- setVerbosityOn((SolverBuddy)arg1) None :¶
Switches the verbosity of the solver on.
- useLocalPreconditioner((SolverBuddy)arg1) bool :¶
Returns
Trueif the preconditoner is applied locally on each MPI. This reduces communication costs and speeds up the application of the preconditioner but at the costs of more iteration steps. This can be an advantage on clusters with slower interconnects.- Returns:
Trueif local preconditioning is applied- Return type:
bool
- class esys.escript.SolverFramework¶
Represents a solver backend (PASO or TRILINOS) attached to a domain.
Use the static factory methods to create an instance and pass it to a domain constructor to fix the solver backend for all solves on that domain:
from esys.escript import SolverFramework pkg = SolverFramework.trilinos() domain = Rectangle(20, 20, 1, framework=pkg)
When no framework is provided to the domain constructor, the process-wide default framework is used (Trilinos if available, Paso otherwise).
- __init__()¶
Raises an exception This class cannot be instantiated from Python
- PASO = 0¶
- TRILINOS = 1¶
- static getDefault() SolverFramework :¶
Returns the process-wide default SolverFramework (Trilinos when available, Paso otherwise).
- Return type:
- getName((SolverFramework)arg1) str :¶
Returns the framework name as a string (
'TRILINOS'or'PASO').- Return type:
str
- getType((SolverFramework)arg1) int :¶
Returns the framework type identifier (
SolverFramework.PASOorSolverFramework.TRILINOS).- Return type:
int
- static isAvailable((int)type) bool :¶
Returns True if the given package type is available in this build.
- Parameters:
type – package type integer constant
- Return type:
bool
- isPaso((SolverFramework)arg1) bool :¶
Returns True if this is the Paso backend.
- Return type:
bool
- isTrilinos((SolverFramework)arg1) bool :¶
Returns True if this is the Trilinos backend.
- Return type:
bool
- static paso() SolverFramework :¶
Returns a SolverFramework for the Paso backend.
- Return type:
- Raises:
EsysException – if Paso is not available in this build.
- static trilinos() SolverFramework :¶
Returns a SolverFramework for the Trilinos backend.
- Return type:
- Raises:
EsysException – if Trilinos is not available in this build.
- class esys.escript.SolverOptions¶
- __init__()¶
- AMG = esys.escriptcore.escriptcpp.SolverOptions.AMG¶
- BACKWARD_EULER = esys.escriptcore.escriptcpp.SolverOptions.BACKWARD_EULER¶
- BICGSTAB = esys.escriptcore.escriptcpp.SolverOptions.BICGSTAB¶
- CGLS = esys.escriptcore.escriptcpp.SolverOptions.CGLS¶
- CGS = esys.escriptcore.escriptcpp.SolverOptions.CGS¶
- CHOLEVSKY = esys.escriptcore.escriptcpp.SolverOptions.CHOLEVSKY¶
- CLASSIC_INTERPOLATION = esys.escriptcore.escriptcpp.SolverOptions.CLASSIC_INTERPOLATION¶
- CLASSIC_INTERPOLATION_WITH_FF_COUPLING = esys.escriptcore.escriptcpp.SolverOptions.CLASSIC_INTERPOLATION_WITH_FF_COUPLING¶
- CR = esys.escriptcore.escriptcpp.SolverOptions.CR¶
- CRANK_NICOLSON = esys.escriptcore.escriptcpp.SolverOptions.CRANK_NICOLSON¶
- DEFAULT = esys.escriptcore.escriptcpp.SolverOptions.DEFAULT¶
- DEFAULT_REORDERING = esys.escriptcore.escriptcpp.SolverOptions.DEFAULT_REORDERING¶
- DIRECT = esys.escriptcore.escriptcpp.SolverOptions.DIRECT¶
- DIRECT_INTERPOLATION = esys.escriptcore.escriptcpp.SolverOptions.DIRECT_INTERPOLATION¶
- DIRECT_MUMPS = esys.escriptcore.escriptcpp.SolverOptions.DIRECT_MUMPS¶
- DIRECT_PARDISO = esys.escriptcore.escriptcpp.SolverOptions.DIRECT_PARDISO¶
- DIRECT_SUPERLU = esys.escriptcore.escriptcpp.SolverOptions.DIRECT_SUPERLU¶
- DIRECT_TRILINOS = esys.escriptcore.escriptcpp.SolverOptions.DIRECT_TRILINOS¶
- GAUSS_SEIDEL = esys.escriptcore.escriptcpp.SolverOptions.GAUSS_SEIDEL¶
- GMRES = esys.escriptcore.escriptcpp.SolverOptions.GMRES¶
- HRZ_LUMPING = esys.escriptcore.escriptcpp.SolverOptions.HRZ_LUMPING¶
- ILU0 = esys.escriptcore.escriptcpp.SolverOptions.ILU0¶
- ILUT = esys.escriptcore.escriptcpp.SolverOptions.ILUT¶
- ITERATIVE = esys.escriptcore.escriptcpp.SolverOptions.ITERATIVE¶
- JACOBI = esys.escriptcore.escriptcpp.SolverOptions.JACOBI¶
- LINEAR_CRANK_NICOLSON = esys.escriptcore.escriptcpp.SolverOptions.LINEAR_CRANK_NICOLSON¶
- LSQR = esys.escriptcore.escriptcpp.SolverOptions.LSQR¶
- LUMPING = esys.escriptcore.escriptcpp.SolverOptions.LUMPING¶
- MINIMUM_FILL_IN = esys.escriptcore.escriptcpp.SolverOptions.MINIMUM_FILL_IN¶
- MINRES = esys.escriptcore.escriptcpp.SolverOptions.MINRES¶
- MKL = esys.escriptcore.escriptcpp.SolverOptions.MKL¶
- MUMPS = esys.escriptcore.escriptcpp.SolverOptions.MUMPS¶
- NESTED_DISSECTION = esys.escriptcore.escriptcpp.SolverOptions.NESTED_DISSECTION¶
- NONLINEAR_GMRES = esys.escriptcore.escriptcpp.SolverOptions.NONLINEAR_GMRES¶
- NO_PRECONDITIONER = esys.escriptcore.escriptcpp.SolverOptions.NO_PRECONDITIONER¶
- NO_REORDERING = esys.escriptcore.escriptcpp.SolverOptions.NO_REORDERING¶
- PCG = esys.escriptcore.escriptcpp.SolverOptions.PCG¶
- PRES20 = esys.escriptcore.escriptcpp.SolverOptions.PRES20¶
- REC_ILU = esys.escriptcore.escriptcpp.SolverOptions.REC_ILU¶
- RILU = esys.escriptcore.escriptcpp.SolverOptions.RILU¶
- ROWSUM_LUMPING = esys.escriptcore.escriptcpp.SolverOptions.ROWSUM_LUMPING¶
- TFQMR = esys.escriptcore.escriptcpp.SolverOptions.TFQMR¶
- UMFPACK = esys.escriptcore.escriptcpp.SolverOptions.UMFPACK¶
- names = {'AMG': esys.escriptcore.escriptcpp.SolverOptions.AMG, 'BACKWARD_EULER': esys.escriptcore.escriptcpp.SolverOptions.BACKWARD_EULER, 'BICGSTAB': esys.escriptcore.escriptcpp.SolverOptions.BICGSTAB, 'CGLS': esys.escriptcore.escriptcpp.SolverOptions.CGLS, 'CGS': esys.escriptcore.escriptcpp.SolverOptions.CGS, 'CHOLEVSKY': esys.escriptcore.escriptcpp.SolverOptions.CHOLEVSKY, 'CLASSIC_INTERPOLATION': esys.escriptcore.escriptcpp.SolverOptions.CLASSIC_INTERPOLATION, 'CLASSIC_INTERPOLATION_WITH_FF_COUPLING': esys.escriptcore.escriptcpp.SolverOptions.CLASSIC_INTERPOLATION_WITH_FF_COUPLING, 'CR': esys.escriptcore.escriptcpp.SolverOptions.CR, 'CRANK_NICOLSON': esys.escriptcore.escriptcpp.SolverOptions.CRANK_NICOLSON, 'DEFAULT': esys.escriptcore.escriptcpp.SolverOptions.DEFAULT, 'DEFAULT_REORDERING': esys.escriptcore.escriptcpp.SolverOptions.DEFAULT_REORDERING, 'DIRECT': esys.escriptcore.escriptcpp.SolverOptions.DIRECT, 'DIRECT_INTERPOLATION': esys.escriptcore.escriptcpp.SolverOptions.DIRECT_INTERPOLATION, 'DIRECT_MUMPS': esys.escriptcore.escriptcpp.SolverOptions.DIRECT_MUMPS, 'DIRECT_PARDISO': esys.escriptcore.escriptcpp.SolverOptions.DIRECT_PARDISO, 'DIRECT_SUPERLU': esys.escriptcore.escriptcpp.SolverOptions.DIRECT_SUPERLU, 'DIRECT_TRILINOS': esys.escriptcore.escriptcpp.SolverOptions.DIRECT_TRILINOS, 'GAUSS_SEIDEL': esys.escriptcore.escriptcpp.SolverOptions.GAUSS_SEIDEL, 'GMRES': esys.escriptcore.escriptcpp.SolverOptions.GMRES, 'HRZ_LUMPING': esys.escriptcore.escriptcpp.SolverOptions.HRZ_LUMPING, 'ILU0': esys.escriptcore.escriptcpp.SolverOptions.ILU0, 'ILUT': esys.escriptcore.escriptcpp.SolverOptions.ILUT, 'ITERATIVE': esys.escriptcore.escriptcpp.SolverOptions.ITERATIVE, 'JACOBI': esys.escriptcore.escriptcpp.SolverOptions.JACOBI, 'LINEAR_CRANK_NICOLSON': esys.escriptcore.escriptcpp.SolverOptions.LINEAR_CRANK_NICOLSON, 'LSQR': esys.escriptcore.escriptcpp.SolverOptions.LSQR, 'LUMPING': esys.escriptcore.escriptcpp.SolverOptions.LUMPING, 'MINIMUM_FILL_IN': esys.escriptcore.escriptcpp.SolverOptions.MINIMUM_FILL_IN, 'MINRES': esys.escriptcore.escriptcpp.SolverOptions.MINRES, 'MKL': esys.escriptcore.escriptcpp.SolverOptions.MKL, 'MUMPS': esys.escriptcore.escriptcpp.SolverOptions.MUMPS, 'NESTED_DISSECTION': esys.escriptcore.escriptcpp.SolverOptions.NESTED_DISSECTION, 'NONLINEAR_GMRES': esys.escriptcore.escriptcpp.SolverOptions.NONLINEAR_GMRES, 'NO_PRECONDITIONER': esys.escriptcore.escriptcpp.SolverOptions.NO_PRECONDITIONER, 'NO_REORDERING': esys.escriptcore.escriptcpp.SolverOptions.NO_REORDERING, 'PCG': esys.escriptcore.escriptcpp.SolverOptions.PCG, 'PRES20': esys.escriptcore.escriptcpp.SolverOptions.PRES20, 'REC_ILU': esys.escriptcore.escriptcpp.SolverOptions.REC_ILU, 'RILU': esys.escriptcore.escriptcpp.SolverOptions.RILU, 'ROWSUM_LUMPING': esys.escriptcore.escriptcpp.SolverOptions.ROWSUM_LUMPING, 'TFQMR': esys.escriptcore.escriptcpp.SolverOptions.TFQMR, 'UMFPACK': esys.escriptcore.escriptcpp.SolverOptions.UMFPACK}¶
- values = {0: esys.escriptcore.escriptcpp.SolverOptions.DEFAULT, 3: esys.escriptcore.escriptcpp.SolverOptions.MKL, 4: esys.escriptcore.escriptcpp.SolverOptions.UMFPACK, 5: esys.escriptcore.escriptcpp.SolverOptions.MUMPS, 6: esys.escriptcore.escriptcpp.SolverOptions.BICGSTAB, 7: esys.escriptcore.escriptcpp.SolverOptions.CGLS, 8: esys.escriptcore.escriptcpp.SolverOptions.CGS, 9: esys.escriptcore.escriptcpp.SolverOptions.CHOLEVSKY, 10: esys.escriptcore.escriptcpp.SolverOptions.CR, 11: esys.escriptcore.escriptcpp.SolverOptions.DIRECT, 12: esys.escriptcore.escriptcpp.SolverOptions.DIRECT_MUMPS, 13: esys.escriptcore.escriptcpp.SolverOptions.DIRECT_PARDISO, 14: esys.escriptcore.escriptcpp.SolverOptions.DIRECT_SUPERLU, 15: esys.escriptcore.escriptcpp.SolverOptions.DIRECT_TRILINOS, 16: esys.escriptcore.escriptcpp.SolverOptions.GMRES, 17: esys.escriptcore.escriptcpp.SolverOptions.HRZ_LUMPING, 18: esys.escriptcore.escriptcpp.SolverOptions.ITERATIVE, 19: esys.escriptcore.escriptcpp.SolverOptions.LSQR, 20: esys.escriptcore.escriptcpp.SolverOptions.MINRES, 21: esys.escriptcore.escriptcpp.SolverOptions.NONLINEAR_GMRES, 22: esys.escriptcore.escriptcpp.SolverOptions.PCG, 23: esys.escriptcore.escriptcpp.SolverOptions.PRES20, 24: esys.escriptcore.escriptcpp.SolverOptions.ROWSUM_LUMPING, 25: esys.escriptcore.escriptcpp.SolverOptions.TFQMR, 26: esys.escriptcore.escriptcpp.SolverOptions.AMG, 27: esys.escriptcore.escriptcpp.SolverOptions.GAUSS_SEIDEL, 28: esys.escriptcore.escriptcpp.SolverOptions.ILU0, 29: esys.escriptcore.escriptcpp.SolverOptions.ILUT, 30: esys.escriptcore.escriptcpp.SolverOptions.JACOBI, 31: esys.escriptcore.escriptcpp.SolverOptions.NO_PRECONDITIONER, 32: esys.escriptcore.escriptcpp.SolverOptions.REC_ILU, 33: esys.escriptcore.escriptcpp.SolverOptions.RILU, 34: esys.escriptcore.escriptcpp.SolverOptions.BACKWARD_EULER, 35: esys.escriptcore.escriptcpp.SolverOptions.CRANK_NICOLSON, 36: esys.escriptcore.escriptcpp.SolverOptions.LINEAR_CRANK_NICOLSON, 37: esys.escriptcore.escriptcpp.SolverOptions.CLASSIC_INTERPOLATION, 38: esys.escriptcore.escriptcpp.SolverOptions.CLASSIC_INTERPOLATION_WITH_FF_COUPLING, 39: esys.escriptcore.escriptcpp.SolverOptions.DIRECT_INTERPOLATION, 40: esys.escriptcore.escriptcpp.SolverOptions.DEFAULT_REORDERING, 41: esys.escriptcore.escriptcpp.SolverOptions.MINIMUM_FILL_IN, 42: esys.escriptcore.escriptcpp.SolverOptions.NESTED_DISSECTION, 43: esys.escriptcore.escriptcpp.SolverOptions.NO_REORDERING}¶
- class esys.escript.TestDomain¶
Test Class for domains with no structure. May be removed from future releases without notice.
- __init__()¶
Raises an exception This class cannot be instantiated from Python
- class esys.escript.TransportProblem¶
- __init__((object)arg1) None¶
- getSafeTimeStepSize((TransportProblem)arg1) float¶
- getUnlimitedTimeStepSize((TransportProblem)arg1) float¶
- insertConstraint((TransportProblem)source, (Data)q, (Data)r, (Data)factor) None :¶
inserts constraint u_{,t}=r where q>0 into the problem using a weighting factor
- isEmpty((TransportProblem)arg1) int :¶
- Return type:
int
- reset((TransportProblem)arg1, (bool)arg2) None :¶
resets the transport operator typically as they have been updated.
- resetValues((TransportProblem)arg1, (bool)arg2) None¶
Functions¶
- esys.escript.Abs(arg)¶
Returns the absolute value of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray.) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.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.ComplexData((object)value[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd8c0>[, (bool)expanded=False]]) Data¶
- esys.escript.ComplexScalar([(object)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd040>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing scalar data-points.
- Parameters:
value (float) – scalar value for all points
what (
FunctionSpace) – FunctionSpace for Dataexpanded (
bool) – If True, a value is stored for each point. If False, more efficient representations may be used
- Return type:
- esys.escript.ComplexTensor([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd340>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank2 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
ComplexTensor( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd440> [, (bool)expanded=False]]) -> Data
- esys.escript.ComplexTensor3([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd540>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank3 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
ComplexTensor3( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd6c0> [, (bool)expanded=False]]) -> Data
- esys.escript.ComplexTensor4([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd740>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank4 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
ComplexTensor4( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd840> [, (bool)expanded=False]]) -> Data
- esys.escript.ComplexVector([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd140>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank1 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
ComplexVector( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd240> [, (bool)expanded=False]]) -> Data
- esys.escript.ContinuousFunction((Domain)domain) FunctionSpace :¶
- Returns:
a continuous FunctionSpace (overlapped node values)
- Return type:
- esys.escript.DiracDeltaFunctions((Domain)domain) FunctionSpace :¶
- Return type:
- esys.escript.Function((Domain)domain) FunctionSpace :¶
- Returns:
a function
FunctionSpace- Return type:
- esys.escript.FunctionOnBoundary((Domain)domain) FunctionSpace :¶
- Returns:
a function on boundary FunctionSpace
- Return type:
- esys.escript.FunctionOnContactOne((Domain)domain) FunctionSpace :¶
- Returns:
Return a FunctionSpace on right side of contact
- Return type:
- esys.escript.FunctionOnContactZero((Domain)domain) FunctionSpace :¶
- Returns:
Return a FunctionSpace on left side of contact
- Return type:
- esys.escript.L2(arg)¶
Returns the L2 norm of
argatwhere.- Parameters:
arg (
escript.DataorSymbol) – function of which the L2 norm is to be calculated- Returns:
L2 norm of
arg- Return type:
floatorSymbol- Note:
L2(arg) is equivalent to
sqrt(integrate(inner(arg,arg)))
- esys.escript.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) – argument- Returns:
maximum value of the absolute value of
argover all components and all data points- Return type:
float- Raises:
TypeError – if type of
argcannot be processed
- esys.escript.MPIBarrierWorld() None :¶
Wait until all MPI processes have reached this point.
- esys.escript.NumpyToData(array, isComplex, functionspace)¶
Creates a
Dataobject from a numpy ndarray.- Parameters:
array (
numpy.ndarray) – the numpy array to convertisComplex (
bool) – whether the data contains complex valuesfunctionspace (
FunctionSpace) – the function space for the new Data object
- Returns:
Data object created from the numpy array
- Return type:
- Raises:
ValueError – if arguments are invalid or boost numpy is not available
Example usage:
NewDataObject = NumpyToData(ndarray, isComplex, FunctionSpace)
- esys.escript.RandomData((tuple)shape, (FunctionSpace)fs[, (int)seed=0[, (tuple)filter=()]]) Data :¶
Creates a new expanded Data object containing pseudo-random values. With no filter, values are drawn uniformly at random from [0,1].
- Parameters:
shape (tuple) – datapoint shape
fs (
FunctionSpace) – function space for data object.seed (long) – seed for random number generator.
- esys.escript.ReducedContinuousFunction((Domain)domain) FunctionSpace :¶
- Returns:
a continuous with reduced order FunctionSpace (overlapped node values on reduced element order)
- Return type:
- esys.escript.ReducedFunction((Domain)domain) FunctionSpace :¶
- Returns:
a function FunctionSpace with reduced integration order
- Return type:
- esys.escript.ReducedFunctionOnBoundary((Domain)domain) FunctionSpace :¶
- Returns:
a function on boundary FunctionSpace with reduced integration order
- Return type:
- esys.escript.ReducedFunctionOnContactOne((Domain)domain) FunctionSpace :¶
- Returns:
Return a FunctionSpace on right side of contact with reduced integration order
- Return type:
- esys.escript.ReducedFunctionOnContactZero((Domain)domain) FunctionSpace :¶
- Returns:
a FunctionSpace on left side of contact with reduced integration order
- Return type:
- esys.escript.ReducedSolution((Domain)domain) FunctionSpace :¶
- Return type:
- esys.escript.Scalar([(object)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6ccfc0>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing scalar data-points.
- Parameters:
value (float) – scalar value for all points
what (
FunctionSpace) – FunctionSpace for Dataexpanded (
bool) – If True, a value is stored for each point. If False, more efficient representations may be used
- Return type:
- esys.escript.Solution((Domain)domain) FunctionSpace :¶
- Return type:
- esys.escript.Tensor([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd2c0>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank2 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
Tensor( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd3c0> [, (bool)expanded=False]]) -> Data
- esys.escript.Tensor3([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd4c0>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank3 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
Tensor3( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd5c0> [, (bool)expanded=False]]) -> Data
- esys.escript.Tensor4([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd640>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank4 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
Tensor4( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd7c0> [, (bool)expanded=False]]) -> Data
- esys.escript.Vector([(float)value=0.0[, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd0c0>[, (bool)expanded=False]]]) Data :¶
Construct a Data object containing rank1 data-points.
- param value:
scalar value for all points
- rtype:
- type value:
float
- param what:
FunctionSpace for Data
- type what:
- param expanded:
If True, a value is stored for each point. If False, more efficient representations may be used
- type expanded:
bool
Vector( (object)value [, (FunctionSpace)what=<esys.escriptcore.escriptcpp.FunctionSpace object at 0x7f350c6cd1c0> [, (bool)expanded=False]]) -> Data
- esys.escript.acos(arg)¶
Returns the inverse cosine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.acosh(arg)¶
Returns the inverse hyperbolic cosine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.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,Symboldepending on the input
- esys.escript.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,Symboldepending on the input
- esys.escript.asin(arg)¶
Returns the inverse sine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.asinh(arg)¶
Returns the inverse hyperbolic sine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.atan(arg)¶
Returns inverse tangent of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.atan2(arg0, arg1)¶
Returns inverse tangent of
arg0/arg1, handling quadrant correctly.- Parameters:
arg0 (
float,escript.Data,numpy.ndarray) – numerator argument (y coordinate)arg1 (
float,escript.Data,numpy.ndarray) – denominator argument (x coordinate)
- Returns:
angle in radians between -pi and pi
- Return type:
float,escript.Data,numpy.ndarraydepending on input types
- esys.escript.atanh(arg)¶
Returns the inverse hyperbolic tangent of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.boundingBox(domain)¶
Returns the bounding box of a domain
- Parameters:
domain (
escript.Domain) – a domain- Returns:
bounding box of the domain
- Return type:
listof pairs offloat
- esys.escript.boundingBoxEdgeLengths(domain)¶
Returns the edge lengths of the bounding box of a domain
- Parameters:
domain (
escript.Domain) – a domain- Return type:
listoffloat
- esys.escript.canInterpolate((FunctionSpace)src, (FunctionSpace)dest) bool :¶
- Parameters:
src – Source FunctionSpace
dest – Destination FunctionSpace
- Returns:
True if src can be interpolated to dest
- Return type:
bool
- esys.escript.clip(arg, minval=None, maxval=None)¶
Cuts the values of
argbetweenminvalandmaxval.- Parameters:
arg (
numpy.ndarray,escript.Data,Symbol,intorfloat) – argumentminval (
floatorNone) – lower range. If None no lower range is appliedmaxval (
floatorNone) – upper range. If None no upper range is applied
- Returns:
an object that contains all values from
argbetweenminvalandmaxval- Return type:
numpy.ndarray,escript.Data,Symbol,intorfloatdepending on the input- Raises:
ValueError – if
minval>maxval
- esys.escript.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 dimensionNoneis returned.- Return type:
intorNone- Raises:
ValueError – if the objects with identifiable dimension don’t have the same spatial dimension.
- esys.escript.commonShape(arg0, arg1)¶
Returns a shape to which
arg0can be extended from the right andarg1can be extended from the left.- Parameters:
- Returns:
the shape of
arg0orarg1such that the left part equals the shape ofarg0and the right end equals the shape ofarg1- Return type:
tupleofint- Raises:
ValueError – if no shape can be found
- esys.escript.condEval(f, tval, fval)¶
Wrapper to allow non-data objects to be used.
- esys.escript.conjugate(arg)¶
returns the complex conjugate of arg
- esys.escript.convertToNumpy(data)¶
Converts a
Dataobject to a numpy array.- Parameters:
data (
Data) – the Data object to convert- Returns:
numpy array containing the data values
- Return type:
numpy.ndarray
- esys.escript.cos(arg)¶
Returns cosine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.cosh(arg)¶
Returns the hyperbolic cosine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.cross(arg0, arg1)¶
Cross product of the two arguments
arg0andarg1which need to be shape (3,).- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol) – first argumentarg1 (
numpy.ndarray,escript.Data,Symbol) – second argument
- Returns:
the cross product of
arg0andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending onarg0- Raises:
ValueError – if the shapes of the arguments are not (3,)
- esys.escript.curl(arg, where=None)¶
Returns the (spatial) curl of
argatwhere..- Parameters:
arg (
escript.DataorSymbol) – function of which the curl is to be calculated. Its shape has to be (), (2,) or (3,)where (
Noneorescript.FunctionSpace) – FunctionSpace in which the gradient is calculated. If not present orNonean appropriate default is used.
- Returns:
curl of
arg- Return type:
escript.DataorSymbol
- esys.escript.delay(arg)¶
Returns a lazy version of arg
- esys.escript.deviatoric(arg)¶
Returns the deviatoric version of
arg.
- esys.escript.diameter(domain)¶
Returns the diameter of a domain.
- Parameters:
domain (
escript.Domain) – a domain- Return type:
float
- esys.escript.div(arg, where=None)¶
Returns the divergence of
argatwhere.- Parameters:
arg (
escript.DataorSymbol) – function of which the divergence is to be calculated. Its shape has to be (d,) where d is the spatial dimension.where (
Noneorescript.FunctionSpace) –FunctionSpacein which the divergence will be calculated. If not present orNonean appropriate default is used.
- Returns:
divergence of
arg- Return type:
escript.DataorSymbol
- esys.escript.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,Symboldepending on the input- Note:
for
escript.DataandSymbolobjects the dimension is restricted to 3.
- esys.escript.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:
tupleofescript.Data- Note:
The dimension is restricted to 3.
- esys.escript.erf(arg)¶
Returns the error function erf of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray.) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.escript_generalTensorProduct(arg0, arg1, axis_offset, transpose=0)¶
Generalized tensor product for escript Data objects.
- Parameters:
arg0 (
escript.Data) – first Data objectarg1 (
escript.Data) – second Data object (not necessarily on the same function space)axis_offset (
int) – axis offset for the tensor producttranspose (
int) – transpose mode (0=none, 1=transpose arg0, 2=transpose arg1)
- Returns:
tensor product result
- Return type:
escript.Data
- esys.escript.escript_generalTensorTransposedProduct(arg0, arg1, axis_offset)¶
Generalized tensor product of arg0 and transposed arg1 for escript Data objects.
- Parameters:
arg0 (
escript.Data) – first Data objectarg1 (
escript.Data) – second Data object (will be transposed, not necessarily on the same function space)axis_offset (
int) – axis offset for the tensor product
- Returns:
tensor product of arg0 and transpose(arg1)
- Return type:
escript.Data
- esys.escript.escript_generalTransposedTensorProduct(arg0, arg1, axis_offset)¶
Generalized tensor product of transposed arg0 and arg1 for escript Data objects.
- Parameters:
arg0 (
escript.Data) – first Data object (will be transposed)arg1 (
escript.Data) – second Data object (not necessarily on the same function space)axis_offset (
int) – axis offset for the tensor product
- Returns:
tensor product of transpose(arg0) and arg1
- Return type:
escript.Data
- esys.escript.escript_inverse(arg)¶
Returns the inverse of an escript Data matrix.
- Parameters:
arg (
escript.Data) – square matrix Data object (dimension restricted to 3)- Returns:
inverse of the matrix
- Return type:
escript.Data
- esys.escript.exp(arg)¶
Returns e to the power of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray.) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type of arg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.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:]
- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol,float,int) – first argumentarg1 (
numpy.ndarray,escript.Data,Symbol,float,int) – second argument
- Returns:
the general tensor product of
arg0andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input
- esys.escript.generalTensorTransposedProduct(arg0, arg1, axis_offset=0)¶
Generalized tensor product of
arg0and 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:]
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 argumentarg1 (
numpy.ndarray,escript.Data,Symbol,float,int) – second argument
- Returns:
the general tensor product of
arg0andtranspose(arg1)at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input
- esys.escript.generalTransposedTensorProduct(arg0, arg1, axis_offset=0)¶
Generalized tensor product of transposed of
arg0andarg1.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:]
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 argumentarg1 (
numpy.ndarray,escript.Data,Symbol,float,int) – second argument
- Returns:
the general tensor product of
transpose(arg0)andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input
- esys.escript.getBoundingBox(domain)¶
Returns the bounding box of a domain as a list of intervals
- Parameters:
domain (
escript.Domain) – a domain- Returns:
bounding box of the domain
- Return type:
listofBBxInterval
- esys.escript.getClosestValue(arg, origin=0)¶
Returns the value in
argwhich is closest to origin.- Parameters:
arg (
escript.Data) – functionorigin (
floatorescript.Data) – reference value
- Returns:
value in
argclosest to origin- Return type:
numpy.ndarray
- esys.escript.getEpsilon()¶
Returns the machine epsilon (smallest positive value where 1.0 + epsilon != 1.0).
- Returns:
machine precision epsilon
- Return type:
float
- esys.escript.getEscriptParamInt((str)name[, (int)sentinel=0]) int :¶
Read the value of an escript tuning parameter
- Parameters:
name (
string) – parameter to lookupsentinel (
int) – Value to be returned ifnameis not a known parameter
- esys.escript.getMPIRankWorld() int :¶
Return the rank of this process in the MPI World.
- esys.escript.getMPISizeWorld() int :¶
Return number of MPI processes in the job.
- esys.escript.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.getMPIWorldSum((int)arg1) int :¶
Each MPI process calls this function with a value for arg1. The values are added up and the total value is returned.
- Return type:
int
- esys.escript.getMachinePrecision() float¶
- esys.escript.getMaxFloat()¶
Returns the largest representable positive floating point number.
- Returns:
maximum float value
- Return type:
float
- esys.escript.getNumberOfThreads() int :¶
Return the maximum number of threads available to OpenMP.
- esys.escript.getNumpy(**data)¶
Converts
Dataobjects to numpy arrays.The keyword args are Data objects to convert. If a scalar
Dataobject is passed with the namemask, then only samples which correspond to positive values inmaskwill be output.- Parameters:
<name> (
Dataorfloat) – Data object or scalar to convert- Returns:
dictionary mapping names to numpy record arrays
- Return type:
dictofnumpy.ndarray- Raises:
ValueError – if no Data object is provided
Example usage:
s=Scalar(..) v=Vector(..) t=Tensor(..) f=float() array = getNumpy(a=s, b=v, c=t, d=f)
- esys.escript.getRank(arg)¶
Identifies the rank of the argument.
- Parameters:
arg (
numpy.ndarray,escript.Data,float,int,Symbol) – an object whose rank is to be returned- Returns:
the rank of the argument
- Return type:
int- Raises:
TypeError – if type of
argcannot be processed
- esys.escript.getRegionTags(function_space)¶
Returns the tag distribution of a function_space as a Data object.
- Parameters:
function_space (
escript.FunctionSpace) – function_space to be used- Returns:
a data object which contains the tag distribution
- Return type:
escript.Dataof rank 0 with ReducedFunction attributes.
- esys.escript.getShape(arg)¶
Identifies the shape of the argument.
- Parameters:
arg (
numpy.ndarray,escript.Data,float,int,Symbol) – an object whose shape is to be returned- Returns:
the shape of the argument
- Return type:
tupleofint- Raises:
TypeError – if type of
argcannot be processed
- esys.escript.getTagNames(domain)¶
Returns a list of tag names used by the domain.
- Parameters:
domain (
escript.Domain) – a domain object- Returns:
a list of tag names used by the domain
- Return type:
listofstr
- esys.escript.getTestDomainFunctionSpace((int)dpps, (int)samples[, (int)size=1]) FunctionSpace :¶
For testing only. May be removed without notice.
- esys.escript.getVersion() str :¶
This method will only report accurate version numbers for clean checkouts.
- esys.escript.grad(arg, where=None)¶
Returns the spatial gradient of
argatwhere.If
gis the returned object, thenif
argis rank 0g[s]is the derivative ofargwith respect to thes-th spatial dimensionif
argis rank 1g[i,s]is the derivative ofarg[i]with respect to thes-th spatial dimensionif
argis rank 2g[i,j,s]is the derivative ofarg[i,j]with respect to thes-th spatial dimensionif
argis rank 3g[i,j,k,s]is the derivative ofarg[i,j,k]with respect to thes-th spatial dimension.
- Parameters:
arg (
escript.DataorSymbol) – function of which the gradient is to be calculated. Its rank has to be less than 3.where (
Noneorescript.FunctionSpace) – FunctionSpace in which the gradient is calculated. If not present orNonean appropriate default is used.
- Returns:
gradient of
arg- Return type:
escript.DataorSymbol
- esys.escript.grad_n(arg, n, where=None)¶
- esys.escript.hasFeature((str)name) bool :¶
Check if escript was compiled with a certain feature
- Parameters:
name (
string) – feature to lookup
- esys.escript.haveMPI4Py() bool :¶
Returns True if escript was built with mpi4py support.
- esys.escript.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,Symboldepending on the input
- esys.escript.identity(shape=())¶
Returns the
shapexshapeidentity tensor.- Parameters:
shape (
tupleofint) – input shape for the identity tensor- Returns:
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.ndarrayof rank 1, rank 2 or rank 4- Raises:
ValueError – if len(shape)>2
- esys.escript.identityTensor(d=3)¶
Returns the
dxdidentity matrix.- Parameters:
d (
int,escript.Domainorescript.FunctionSpace) – dimension or an object that has thegetDimmethod defining the dimension- Returns:
the object u of rank 2 with u[i,j]=1 for i=j and u[i,j]=0 otherwise
- Return type:
numpy.ndarrayorescript.Dataof rank 2
- esys.escript.identityTensor4(d=3)¶
Returns the
dxdxdxdidentity tensor.- Parameters:
d (
intor any object with agetDimmethod) – dimension or an object that has thegetDimmethod defining the dimension- Returns:
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.ndarrayorescript.Dataof rank 4
- esys.escript.imag(arg)¶
returns the imaginary part of arg
- esys.escript.inf(arg)¶
Returns the minimum value over all data points.
- Parameters:
arg (
float,int,escript.Data,numpy.ndarray) – argument- Returns:
minimum value of
argover all components and all data points- Return type:
float- Raises:
TypeError – if type of
argcannot be processed
- esys.escript.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.arg0andarg1must have the same shape.- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol,float,int) – first argumentarg1 (
numpy.ndarray,escript.Data,Symbol,float,int) – second argument
- Returns:
the inner product of
arg0andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symbol,floatdepending on the input- Raises:
ValueError – if the shapes of the arguments are not identical
- esys.escript.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>
- esys.escript.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> (
floatornumpy.ndarray) – value to be used for <tag_name>
- Returns:
target- Return type:
escript.Data
- esys.escript.integrate(arg, where=None)¶
Returns the integral of the function
argover its domain. Ifwhereis presentargis interpolated towherebefore integration.- Parameters:
arg (
escript.DataorSymbol) – the function which is integratedwhere (
Noneorescript.FunctionSpace) – FunctionSpace in which the integral is calculated. If not present orNonean appropriate default is used.
- Returns:
integral of
arg- Return type:
float,numpy.ndarrayorSymbol
- esys.escript.interpolate(arg, where)¶
Interpolates the function into the
FunctionSpacewhere. If the argumentarghas the requested function spacewhereno interpolation is performed andargis returned.- Parameters:
arg (
escript.DataorSymbol) – interpolantwhere (
escript.FunctionSpace) –FunctionSpaceto be interpolated to
- Returns:
interpolated argument
- Return type:
escript.DataorSymbol
- esys.escript.interpolateTable(tab, dat, start, step, undef=1e+50, check_boundaries=False)¶
Interpolates values from a lookup table.
Deprecated since version Use:
InterpolationTableinstead. This function delegates toInterpolationTablewithorder=1.- Parameters:
tab (
numpy.ndarray) – the lookup table arraydat (
Data) – coordinate data — scalarDatafor 1-D or vectorDatafor 2-D/3-Dstart (
floatortupleoffloat) – starting coordinate(s) for the tablestep (
floatortupleoffloat) – step size(s) for the tableundef (
float) – upper bound on interpolated valuescheck_boundaries (
bool) – ifTrue, raise an error for out-of-bounds coordinates
- Returns:
interpolated values
- Return type:
- esys.escript.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,Symboldepending on the input- Note:
for
escript.Dataobjects the dimension is restricted to 3.
- esys.escript.jump(arg, domain=None)¶
Returns the jump of
argacross the continuity of the domain.- Parameters:
arg (
escript.DataorSymbol) – argumentdomain (
Noneorescript.Domain) – the domain where the discontinuity is located. If domain is not present or equal toNonethe domain ofargis used.
- Returns:
jump of
arg- Return type:
escript.DataorSymbol
- esys.escript.kronecker(d=3)¶
Returns the kronecker delta-symbol.
- Parameters:
d (
int,escript.Domainorescript.FunctionSpace) – dimension or an object that has thegetDimmethod defining the dimension- Returns:
the object u of rank 2 with u[i,j]=1 for i=j and u[i,j]=0 otherwise
- Return type:
numpy.ndarrayorescript.Dataof rank 2
- esys.escript.length(arg)¶
Returns the length (Euclidean norm) of argument
argat each data point.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symboldepending on the type ofarg
- esys.escript.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.listFeatures() list :¶
- Returns:
A list of strings representing the features escript supports.
- esys.escript.load((str)fileName, (Domain)domain) Data :¶
reads real Data on domain from file in HDF5 format
- Parameters:
fileName (
string)domain (
Domain)
- esys.escript.loadIsConfigured() bool :¶
- Returns:
True if the load function is configured.
- esys.escript.log(arg)¶
Returns the natural logarithm of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray.) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.log10(arg)¶
Returns base-10 logarithm of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.longestEdge(domain)¶
Returns the length of the longest edge of the domain
- Parameters:
domain (
escript.Domain) – a domain- Returns:
longest edge of the domain parallel to the Cartesian axis
- Return type:
float
- esys.escript.makeTagMap(fs)¶
Produces an expanded Data over the function space where the value is the tag associated with the sample.
- Parameters:
fs (
escript.FunctionSpace) – the function space- Returns:
Data object with tag values at each sample point
- Return type:
escript.Data
- esys.escript.matchShape(arg0, arg1)¶
Returns a representation of
arg0andarg1which have the same shape.- Parameters:
arg0 (
numpy.ndarray,`escript.Data`,``float``,int,Symbol) – first argumentarg1 (
numpy.ndarray,`escript.Data`,``float``,int,Symbol) – second argument
- Returns:
arg0andarg1where copies are returned when the shape has to be changed- Return type:
tuple
- esys.escript.matchType(arg0=0.0, arg1=0.0)¶
Converts
arg0andarg1both to the same typenumpy.ndarrayorescript.Data- Parameters:
arg0 (
numpy.ndarray,`escript.Data`,``float``,int,Symbol) – first argumentarg1 (
numpy.ndarray,`escript.Data`,``float``,int,Symbol) – second argument
- Returns:
a tuple representing
arg0andarg1with the same type or with at least one of them being aSymbol- Return type:
tupleof twonumpy.ndarrayor twoescript.Data- Raises:
TypeError – if type of
arg0orarg1cannot be processed
- esys.escript.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
arg0and the first dimension ofarg1must match.- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol) – first argument of rank 2arg1 (
numpy.ndarray,escript.Data,Symbol) – second argument of at least rank 1
- Returns:
the matrix-matrix or matrix-vector product of
arg0andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input- Raises:
ValueError – if the shapes of the arguments are not appropriate
- esys.escript.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
arg0andarg1must match.- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol) – first argument of rank 2arg1 (
numpy.ndarray,escript.Data,Symbol) – second argument of rank 1 or 2
- Returns:
the product of
arg0and the transposed ofarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input- Raises:
ValueError – if the shapes of the arguments are not appropriate
- esys.escript.matrixmult(arg0, arg1)¶
See
matrix_mult.
- esys.escript.maximum(*args)¶
The maximum over arguments
args.- Parameters:
args (
numpy.ndarray,escript.Data,Symbol,intorfloat) – arguments- Returns:
an object which in each entry gives the maximum of the corresponding values in
args- Return type:
numpy.ndarray,escript.Data,Symbol,intorfloatdepending on the input
- esys.escript.maxval(arg)¶
Returns the maximum value over all components of
argat each data point.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symboldepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.meanValue(arg)¶
return the mean value of the argument over its domain
- Parameters:
arg (
escript.Data) – function- Returns:
mean value
- Return type:
floatornumpy.ndarray
- esys.escript.minimum(*args)¶
The minimum over arguments
args.- Parameters:
args (
numpy.ndarray,escript.Data,Symbol,intorfloat) – arguments- Returns:
an object which gives in each entry the minimum of the corresponding values in
args- Return type:
numpy.ndarray,escript.Data,Symbol,intorfloatdepending on the input
- esys.escript.minval(arg)¶
Returns the minimum value over all components of
argat each data point.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symboldepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.mkDir(*pathname)¶
creates a directory of name
pathnameif the directory does not exist.- Parameters:
pathname (
strorsequence of strings) – valid path name- Note:
The method is MPI safe.
- esys.escript.mult(arg0, arg1)¶
Product of
arg0andarg1.- Parameters:
arg0 (
Symbol,float,int,escript.Dataornumpy.ndarray) – first termarg1 (
Symbol,float,int,escript.Dataornumpy.ndarray) – second term
- Returns:
the product of
arg0andarg1- Return type:
Symbol,float,int,escript.Dataornumpy.ndarray- Note:
The shape of both arguments is matched according to the rules used in
matchShape.
- esys.escript.negative(arg)¶
returns the negative part of arg
- esys.escript.nonsymmetric(arg)¶
Deprecated alias for antisymmetric.
- esys.escript.normalize(arg, zerolength=0)¶
Returns the normalized version of
arg(=``arg/length(arg)``).- Parameters:
arg (
escript.DataorSymbol) – functionzerolength (
float) – relative tolerance for arg == 0
- Returns:
normalized
argwhereargis non-zero, and zero elsewhere- Return type:
escript.DataorSymbol
- esys.escript.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.Shapet runs through
arg1.Shape
- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol,float,int) – first argumentarg1 (
numpy.ndarray,escript.Data,Symbol,float,int) – second argument
- Returns:
the outer product of
arg0andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input
- esys.escript.phase(arg)¶
return the “phase”/”arg”/”angle” of a number
- esys.escript.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:
intorNone
- esys.escript.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.positive(arg)¶
returns the positive part of arg
- esys.escript.printParallelThreadCounts() None¶
- esys.escript.real(arg)¶
returns the real part of arg
- esys.escript.releaseUnusedMemory() None¶
- esys.escript.reorderComponents(arg, index)¶
Resorts the components of
argaccording to index.
- esys.escript.resolve(arg)¶
Returns the value of arg resolved.
- esys.escript.resolveGroup((object)arg1) None¶
- esys.escript.runMPIProgram((list)arg1) int :¶
Spawns an external MPI program using a separate communicator.
- esys.escript.safeDiv(arg0, arg1, rtol=None)¶
returns arg0/arg1 but return 0 where arg1 is (almost) zero
- esys.escript.saveDataCSV(filename, append=False, refid=False, sep=', ', csep='_', **data)¶
Writes
Dataobjects 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 beginningrefid (
bool) – IfTrue, then a list of reference ids will be printed in the first columnsep (
string) – separator between fieldscsep – separator for components of rank 2 and above (e.g. ‘_’ -> c0_1)
The keyword args are Data objects to save. If a scalar
Dataobject is passed with the namemask, then only samples which correspond to positive values inmaskwill 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.
- esys.escript.saveESD(datasetName, dataDir='.', domain=None, timeStep=0, deltaT=1, dynamicMesh=0, timeStepFormat='%04d', **data)¶
Saves
Dataobjects 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 filedataDir (
str) – optional directory where the data files should be saveddomain (
escript.Domain) – domain of theDataobject(s). If not specified, the domain of the givenDataobjects is used.timeStep (
int) – current timestep or sequence number - first one must be 0deltaT (
int) – timestep or sequence increment, see example abovedynamicMesh (
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> (
Dataobject) – 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.
- esys.escript.setEscriptParamInt((str)name[, (int)value=0]) None :¶
Modify the value of an escript tuning parameter
- Parameters:
name (
string)value (
int)
- esys.escript.setNumberOfThreads((int)arg1) None :¶
Use of this method is strongly discouraged.
- esys.escript.showEscriptParams()¶
Displays the parameters escript recognises with an explanation and their current value.
- esys.escript.sign(arg)¶
Returns the sign of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.sin(arg)¶
Returns sine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray.) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.sinh(arg)¶
Returns the hyperbolic sine of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.sqrt(arg)¶
Returns the square root of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.sup(arg)¶
Returns the maximum value over all data points.
- Parameters:
arg (
float,int,escript.Data,numpy.ndarray) – argument- Returns:
maximum value of
argover all components and all data points- Return type:
float- Raises:
TypeError – if type of
argcannot be processed
- esys.escript.swap_axes(arg, axis0=0, axis1=1)¶
Returns the swap of
argby swapping the componentsaxis0andaxis1.- Parameters:
arg (
escript.Data,Symbol,numpy.ndarray) – argumentaxis0 (
int) – first axis.axis0must be non-negative and less than the rank ofarg.axis1 (
int) – second axis.axis1must be non-negative and less than the rank ofarg.
- Returns:
argwith swapped components- Return type:
escript.Data,Symbolornumpy.ndarraydepending on the type ofarg
- esys.escript.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,Symboldepending on the input
- esys.escript.tan(arg)¶
Returns tangent of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.tanh(arg)¶
Returns the hyperbolic tangent of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.tensor_mult(arg0, arg1)¶
The tensor product of the two arguments.
For
arg0of 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
arg0of 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
arg0and the last dimension ofarg1must match and in the second case the two last dimensions ofarg0must match the two first dimensions ofarg1.- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol) – first argument of rank 2 or 4arg1 (
numpy.ndarray,escript.Data,Symbol) – second argument of shape greater than 1 or 2 depending on the rank ofarg0
- Returns:
the tensor product of
arg0andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input
- esys.escript.tensor_transposed_mult(arg0, arg1)¶
The tensor product of the first and the transpose of the second argument.
For
arg0of rank 2 this isout[s0,s1]=Sigma_{r0} arg0[s0,r0]*arg1[s1,r0]and for
arg0of 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
arg0andarg1must match and in the second case the two last dimensions ofarg0must 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 4arg1 (
numpy.ndarray,escript.Data,Symbol) – second argument of shape greater of 1 or 2 depending on rank ofarg0
- Returns:
the tensor product of
arg0and the transposed ofarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input
- esys.escript.tensormult(arg0, arg1)¶
See
tensor_mult.
- esys.escript.testForZero(arg)¶
Tests if the argument is identical to zero.
- Parameters:
arg (typically
numpy.ndarray,escript.Data,float,int) – the object to test for zero- Returns:
True if the argument is identical to zero, False otherwise
- Return type:
bool
- esys.escript.trace(arg, axis_offset=0)¶
Returns the trace of
argwhich is the sum ofarg[k,k]over k.- Parameters:
arg (
escript.Data,Symbol,numpy.ndarray) – argumentaxis_offset (
int) –axis_offsetto components to sum over.axis_offsetmust be non-negative and less than the rank ofarg+1. The dimensions of componentaxis_offsetand axis_offset+1 must be equal.
- Returns:
trace of arg. The rank of the returned object is rank of
argminus 2.- Return type:
escript.Data,Symbolornumpy.ndarraydepending on the type ofarg
- esys.escript.transpose(arg, axis_offset=None)¶
Returns the transpose of
argby swapping the firstaxis_offsetand the lastrank-axis_offsetcomponents.- Parameters:
arg (
escript.Data,Symbol,numpy.ndarray,float,int) – argumentaxis_offset (
int) – the firstaxis_offsetcomponents are swapped with the rest.axis_offsetmust be non-negative and less or equal to the rank ofarg. Ifaxis_offsetis not presentint(r/2)where r is the rank ofargis used.
- Returns:
transpose of
arg- Return type:
escript.Data,Symbol,numpy.ndarray,float,intdepending on the type ofarg
- esys.escript.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
arg0andarg1must match.- Parameters:
arg0 (
numpy.ndarray,escript.Data,Symbol) – first argument of rank 2arg1 (
numpy.ndarray,escript.Data,Symbol) – second argument of at least rank 1
- Returns:
the product of the transpose of
arg0andarg1at each data point- Return type:
numpy.ndarray,escript.Data,Symboldepending on the input- Raises:
ValueError – if the shapes of the arguments are not appropriate
- esys.escript.transposed_tensor_mult(arg0, arg1)¶
The tensor product of the transpose of the first and the second argument.
For
arg0of 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
arg0of 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
arg0and the first dimension ofarg1must match and in the second case the two first dimensions ofarg0must 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 4arg1 (
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,Symboldepending on the input
- esys.escript.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 elementd (
int,escript.Domainorescript.FunctionSpace) – dimension or an object that has thegetDimmethod 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.ndarrayorescript.Dataof rank 1
- esys.escript.vol(arg)¶
Returns the volume or area of the oject
arg- Parameters:
arg (
escript.FunctionSpaceorescript.Domain) – a geometrical object- Return type:
float
- esys.escript.whereNegative(arg)¶
Returns mask of negative values of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.whereNonNegative(arg)¶
Returns mask of non-negative values of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.whereNonPositive(arg)¶
Returns mask of non-positive values of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.whereNonZero(arg, tol=0.0)¶
Returns mask of values different from zero of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argumenttol (
float) – absolute tolerance. Values with absolute value less than or equal to tol are considered zero.
- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.wherePositive(arg)¶
Returns mask of positive values of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray.) – argument- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
TypeError – if the type of the argument is not expected
- esys.escript.whereZero(arg, tol=None, rtol=1.4901161193847656e-08)¶
Returns mask of zero entries of argument
arg.- Parameters:
arg (
float,escript.Data,Symbol,numpy.ndarray) – argumenttol (
float) – absolute tolerance. Values with absolute value less than tol are accepted as zero. Iftolis not presentrtol * Lsup(arg)is used.rtol (non-negative
float) – relative tolerance used to define the absolute tolerance iftolis not present.
- Return type:
float,escript.Data,Symbol,numpy.ndarraydepending on the type ofarg- Raises:
ValueError – if
rtolis negative.TypeError – if the type of the argument is not expected
- esys.escript.zeros(shape=())¶
Returns the
shapezero tensor.- Parameters:
shape (
tupleofint) – input shape for the zero tensor- Returns:
array of shape filled with zeros
- Return type:
numpy.ndarray
Others¶
DBLE_MAX
DataCoupler
EPSILON
HAVE_MPI4PY
HAVE_SYMBOLS
MPIDomainArray
esys_lib_path
esys_packages
esys_paths
package_prefix
Packages¶
- esys.escript.costfunctions Package
- Classes
CostFunctionCostFunction.__init__()CostFunction.getArguments()CostFunction.getArgumentsAndCount()CostFunction.getDualProduct()CostFunction.getDualProductAndCount()CostFunction.getGradient()CostFunction.getGradientAndCount()CostFunction.getInverseHessianApproximation()CostFunction.getInverseHessianApproximationAndCount()CostFunction.getNorm()CostFunction.getNormAndCount()CostFunction.getSqueezeFactor()CostFunction.getStatistics()CostFunction.getValue()CostFunction.getValueAndCount()CostFunction.resetStatistics()
- Functions
- Others
- Packages
- Classes
- esys.escript.minimizer Package
- Classes
AbstractMinimizerAbstractMinimizer.__init__()AbstractMinimizer.doCallback()AbstractMinimizer.getCostFunction()AbstractMinimizer.getLineSearch()AbstractMinimizer.getOptions()AbstractMinimizer.getResult()AbstractMinimizer.logSummary()AbstractMinimizer.run()AbstractMinimizer.setCallback()AbstractMinimizer.setCostFunction()AbstractMinimizer.setIterMax()AbstractMinimizer.setOptions()AbstractMinimizer.setTolerance()
CostFunctionCostFunction.__init__()CostFunction.getArguments()CostFunction.getArgumentsAndCount()CostFunction.getDualProduct()CostFunction.getDualProductAndCount()CostFunction.getGradient()CostFunction.getGradientAndCount()CostFunction.getInverseHessianApproximation()CostFunction.getInverseHessianApproximationAndCount()CostFunction.getNorm()CostFunction.getNormAndCount()CostFunction.getSqueezeFactor()CostFunction.getStatistics()CostFunction.getValue()CostFunction.getValueAndCount()CostFunction.resetStatistics()
CostFunction1DEvaluationFactoryEvalutedPhiLineSearchLineSearchAlphaMaxErrorLineSearchAlphaMinErrorLineSearchInterpolationBreakDownErrorLineSearchIterMaxReachedErrorLineSearchSearchDirectionErrorLineSearchTerminationErrorMinimizerExceptionMinimizerIterationIncurableBreakDownMinimizerLBFGSMinimizerMaxIterReachedMinimizerNLCG
- Functions
- Others
- Packages
- Classes