Tensor Module¶
-
class
riccipy.tensor.
AbstractTensor
¶ Bases:
object
Wrapper class for sympy Array with attributes used for identification.
-
as_array
()¶ Return the data stored in the tensor as an instance of sympy.Array.
-
as_inverse
()¶ Return the data of the inversed array associated with the tensor.
-
as_matrix
()¶ Return the data stored in the tensor as an instance of sympy.Matrix.
Notes
The
tomatrix
attribute required by this method will throw an error if the tensor is not of rank 2.
-
-
class
riccipy.tensor.
Index
¶ Bases:
sympy.tensor.tensor.TensorIndex
Class for a symbolic representation of a tensor index with respect to a metric.
-
class
riccipy.tensor.
IndexedTensor
¶ Bases:
riccipy.tensor.AbstractTensor
,sympy.tensor.tensor.Tensor
Class representing a Tensor that has been evaluated with indices.
Used as the base object for creating algebraic expressions with tensors. Inherited are methods such as __mul__ to allow sympy to manage dummy indices when multiplied with other tensors.
Generated when a Tensor is called as a function with indices as arguments.
-
class
riccipy.tensor.
Repl
¶ Bases:
dict
Dictionary object used for managing the replacements of tensors to arrays.
-
class
riccipy.tensor.
Tensor
¶ Bases:
riccipy.tensor.AbstractTensor
,sympy.tensor.tensor.TensorHead
Class for representing a Sympy TensorHead object that have an associated array of data elements/expressions to be substituted when requested.
-
covariance_transform
(*indices)¶ Return the array associated with this tensor with indices set according to arguments.
Parameters: indices (TensorIndex) – Defines the covariance and contravariance of the returned array. Examples
>>> from sympy import Function, diag, exp, sin, symbols >>> from riccipy import Metric, indices >>> t, r, th, ph = symbols('t r theta phi') >>> al, be = symbols('alpha beta', cls=Function) >>> spherical = diag(-exp(2 * al(r)), exp(2 * be(r)), r ** 2, r ** 2 * sin(th) ** 2) >>> g = Metric('g', [t, r, th, ph], spherical) >>> mu, nu = indices('mu nu', g) >>> g.covariance_transform(mu, nu) [[-exp(-2*alpha(r)), 0, 0, 0], [0, exp(-2*beta(r)), 0, 0], [0, 0, r**(-2), 0], [0, 0, 0, 1/(r**2*sin(theta)**2)]]
-
simplify
()¶ Replace the stored array associated with this tensor with a simplified version. This method also replaces the entry in the replacement dictionary.
-
subs
(sub_dict)¶ Use a dictionary to replace symbols/variables in a tensor.
Parameters: sub_dict (dict) – Dictionary that maps symbols to expressions. Examples
>>> from sympy import Rational, diag, exp, sin, symbols >>> from riccipy import Metric, indices >>> t, r, th, ph, M = symbols('t r theta phi M', real=True) >>> schwarzschild = diag(1 - 2 * M/r, 1/(1 - 2 * M/r), r ** 2, r ** 2 * sin(th) ** 2) >>> g = Metric('g', [t, r, th, ph], schwarzschild) >>> g.subs({M: Rational(1, 2)}) >>> g.as_array() [[1 - 1/r, 0, 0, 0], [0, 1/(1 - 1/r), 0, 0], [0, 0, r**2, 0], [0, 0, 0, r**2*sin(theta)**2]]
-
-
riccipy.tensor.
expand_array
(expr, idxs=None)¶ Evaluate a tensor expression and return the result as an array.
Parameters: - expr (TensExpr) – Symbolic expression of tensors.
- idxs (TensorIndex) – Indices that encode the covariance and contravariance of the result.
-
riccipy.tensor.
expand_tensor
(symbol, expr, metric, idxs=None, **kwargs)¶ Evaluate a tensor expression and return the result as a tensor.
Parameters: - symbol (str) – Name of the tensor and the symbol to denote it by when printed.
- expr (TensExpr) – Symbolic expression of tensors.
- metric (Metric) – Classify the tensor as being defined in terms of a metric.
- idxs (TensorIndex) – Indices that encode the covariance and contravariance of the result.
-
riccipy.tensor.
indices
(s, metric, is_up=True)¶ Create indices using a method similar to sympy.symbols.