esys.escript.symbolic.symbol Package

Classes

class esys.escript.symbolic.symbol.Data

Bases: Boost.Python.instance

Represents a collection of datapoints. It is used to store the values of a function. For more details please consult the c++ class documentation.

copy((Data)arg1, (Data)other) → None :

Make this object a copy of other

note:The two objects will act independently from now on. That is, changing other after this call will not change this object and vice versa.
copy( (Data)arg1) -> Data :
note:In the no argument form, a new object will be returned which is an independent copy of this object.
copyWithMask((Data)arg1, (Data)other, (Data)mask) → None :

Selectively copy values from other Data.Datapoints which correspond to positive values in mask will be copied from other

Parameters:
  • other (Data) – source of values
  • mask (Scalar Data) –
delay((Data)arg1) → Data :

Convert this object into lazy representation

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

Save the data as a netCDF file

Parameters:fileName (string) –
expand((Data)arg1) → None :

Convert the data to expanded representation if it is not expanded already.

getDomain((Data)arg1) → Domain :
Return type:Domain
getFunctionSpace((Data)arg1) → FunctionSpace :
Return type:FunctionSpace
getNumberOfDataPoints((Data)arg1) → int :
Return type:int
Returns:Number of datapoints in the object
getRank((Data)arg1) → int :
Returns:the number of indices required to address a component of a datapoint
Return type:positive int
getShape((Data)arg1) → tuple :

Returns the shape of the datapoints in this object as a python tuple. Scalar data has the shape ()

Return type:tuple
getTagNumber((Data)arg1, (int)dpno) → int :

Return tag number for the specified datapoint

Return type:int
Parameters:dpno (int) – datapoint number
getTupleForDataPoint((Data)arg1, (int)dataPointNo) → object :
Returns:Value of the specified datapoint
Return type:tuple
Parameters:dataPointNo (int) – datapoint to access
getTupleForGlobalDataPoint((Data)arg1, (int)procNo, (int)dataPointNo) → object :

Get a specific datapoint from a specific process

Return type:

tuple

Parameters:
  • procNo (positive int) – MPI rank of the process
  • dataPointNo (int) – datapoint to access
interpolate((Data)arg1, (FunctionSpace)functionspace) → Data :

Interpolate this object’s values into a new functionspace.

interpolateTable((Data)arg1, (object)table, (float)Amin, (float)Astep, (Data)B, (float)Bmin, (float)Bstep[, (float)undef=1e+50[, (bool)check_boundaries=False]]) → Data :

Creates a new Data object by interpolating using the source data (which are looked up in table) A must be the outer dimension on the 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:Data
param Bmin:The base of locations in table for 2nd dimension
type Bmin:float
param Bstep:size of gap between each item in the table for 2nd dimension
type Bstep:float
param check_boundaries:
 if true, then values outside the boundaries will be rejected. If false, then boundary values will be used.
raise RuntimeError(DataException):
 if the coordinates do not map into the table or if the interpolated value is above undef
rtype:Data

interpolateTable( (Data)arg1, (object)table, (float)Amin, (float)Astep [, (float)undef=1e+50 [, (bool)check_boundaries=False]]) -> Data

isConstant((Data)arg1) → bool :
Return type:bool
Returns:True if this Data is an instance of DataConstant
Note :This does not mean the data is immutable.
isEmpty((Data)arg1) → bool :

Is this object an instance of DataEmpty

Return type:bool
Note :This is not the same thing as asking if the object contains datapoints.
isExpanded((Data)arg1) → bool :
Return type:bool
Returns:True if this Data is expanded.
isLazy((Data)arg1) → bool :
Return type:bool
Returns:True if this Data is lazy.
isProtected((Data)arg1) → bool :

Can this instance be modified. :rtype: bool

isReady((Data)arg1) → bool :
Return type:bool
Returns:True if this Data is not lazy.
isTagged((Data)arg1) → bool :
Return type:bool
Returns:True if this Data is expanded.
maxGlobalDataPoint((Data)arg1) → tuple :

Please consider using getSupLocator() from pdetools instead.

minGlobalDataPoint((Data)arg1) → tuple :

Please consider using getInfLocator() from pdetools instead.

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

resolve((Data)arg1) → None :

Convert the data to non-lazy representation.

setProtection((Data)arg1) → None :

Disallow modifications to this data object

Note :This method does not allow you to undo protection.
setTaggedValue((Data)arg1, (int)tagKey, (object)value) → None :

Set the value of tagged Data.

param tagKey:tag to update
type tagKey:int
setTaggedValue( (Data)arg1, (str)name, (object)value) -> None :
param name:tag to update
type name:string
param value:value to set tagged data to
type value:object which acts like an array, tuple or list
setToZero((Data)arg1) → None :

After this call the object will store values of the same shape as before but all components will be zero.

setValueOfDataPoint((Data)arg1, (int)dataPointNo, (object)value) → None

setValueOfDataPoint( (Data)arg1, (int)arg2, (object)arg3) -> None

setValueOfDataPoint( (Data)arg1, (int)arg2, (float)arg3) -> None :

Modify the value of a single datapoint.

param dataPointNo:
 
type dataPointNo:
 int
param value:
type value:float or an object which acts like an array, tuple or list
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.symbolic.symbol.FunctionSpace

Bases: Boost.Python.instance

A FunctionSpace describes which points from the Domain to use to represent functions.

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 :
Returns:the underlying Domain for this FunctionSpace.
Return type:Domain
getListOfTags((FunctionSpace)arg1) → list :
Returns:a list of the tags used in this function space
Return type:list
getNormal((FunctionSpace)arg1) → Data :
Returns:the surface normal field.
Return type:Data
getReferenceIDFromDataPointNo((FunctionSpace)arg1, (int)dataPointNo) → int :
Returns:the reference number associated with dataPointNo
Return type:int
getSize((FunctionSpace)arg1) → Data :
Returns:sample size
Return type:Data
getTagFromDataPointNo((FunctionSpace)arg1, (int)arg2) → int :
Returns:the tag associated with the given sample number.
Return type:int
getX((FunctionSpace)arg1) → Data :
Returns:a function whose values are its input coordinates. ie an identity function.
Return type:Data
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.symbolic.symbol.Symbol(*args, **kwargs)

Bases: object

Symbol objects are placeholders for a single mathematical symbol, such as ‘x’, or for arbitrarily complex mathematical expressions such as ‘c*x**4+alpha*exp(x)-2*sin(beta*x)’, where ‘alpha’, ‘beta’, ‘c’, and ‘x’ are also Symbols (the symbolic ‘atoms’ of the expression).

With the help of the ‘Evaluator’ class these symbols and expressions can be resolved by substituting numeric values and/or escript Data objects for the atoms. To facilitate the use of Data objects a Symbol has a shape (and thus a rank) as well as a dimension (see constructor). Symbols are useful to perform mathematical simplifications, compute derivatives and as coefficients for nonlinear PDEs which can be solved by the NonlinearPDE class.

applyfunc(f, on_type=None)

Applies the function f to all elements (if on_type is None) or to all elements of type on_type.

atoms(*types)

Returns the atoms that form the current Symbol.

By default, only objects that are truly atomic and cannot be divided into smaller pieces are returned: symbols, numbers, and number symbols like I and pi. It is possible to request atoms of any type, however.

Note that if this symbol contains components such as [x]_i_j then only their main symbol ‘x’ is returned.

Parameters:types – types to restrict result to
Returns:list of atoms of specified type
Return type:set
coeff(x, expand=True)

Returns the coefficient of the term “x” or 0 if there is no “x”.

If “x” is a scalar symbol then “x” is searched in all components of this symbol. Otherwise the shapes must match and the coefficients are checked component by component.

Example:

x=Symbol('x', (2,2))
y=3*x
print y.coeff(x)
print y.coeff(x[1,1])

will print:

[[3 3]
 [3 3]]

[[0 0]
 [0 3]]
Parameters:x (Symbol, numpy.ndarray, list) – the term whose coefficients are to be found
Returns:the coefficient(s) of the term
Return type:Symbol
diff(*symbols, **assumptions)
expand()

Applies the sympy.expand operation on all elements in this symbol

getDataSubstitutions()

Returns a dictionary of symbol names and the escript Data objects they represent within this Symbol.

Returns:the dictionary of substituted Data objects
Return type:dict
getDim()

Returns the spatial dimensionality of this symbol.

Returns:the symbol’s spatial dimensionality, or -1 if undefined
Return type:int
getRank()

Returns the rank of this symbol.

Returns:the symbol’s rank which is equal to the length of the shape.
Return type:int
getShape()

Returns the shape of this symbol.

Returns:the symbol’s shape
Return type:tuple of int
grad(where=None)

Returns a symbol which represents the gradient of this symbol. :type where: Symbol, FunctionSpace

inverse()
is_Add = False
is_Float = False
item(*args)

Returns an element of this symbol. This method behaves like the item() method of numpy.ndarray. If this is a scalar Symbol, no arguments are allowed and the only element in this Symbol is returned. Otherwise, ‘args’ specifies a flat or nd-index and the element at that index is returned.

Parameters:args – index of item to be returned
Returns:the requested element
Return type:sympy.Symbol, int, or float
lambdarepr()
simplify()

Applies the sympy.simplify operation on all elements in this symbol

subs(old, new)

Substitutes an expression.

swap_axes(axis0, axis1)
tensorProduct(other, axis_offset)
tensorTransposedProduct(other, axis_offset)
trace(axis_offset)

Returns the trace of this Symbol.

transpose(axis_offset)

Returns the transpose of this Symbol.

transposedTensorProduct(other, axis_offset)

Functions

Others

  • HAVE_SYMBOLS
  • __author__
  • __builtins__
  • __copyright__
  • __doc__
  • __file__
  • __license__
  • __name__
  • __package__
  • __url__