dedalus.core.arithmetic ======================= .. py:module:: dedalus.core.arithmetic .. autoapi-nested-parse:: Arithmetic operators. Module Contents --------------- .. py:class:: Add(*args, out=None, **kw) Addition operator. .. py:method:: build_ncc_matrices(separability, vars, **kw) Precompute non-constant coefficients and build multiplication matrices. .. py:method:: expand(*vars) Expand expression over specified variables. .. py:method:: expression_matrices(subproblem, vars, **kw) Build expression matrices for a specific subproblem and variables. .. py:method:: matrix_coupling(*vars) .. py:method:: matrix_dependence(*vars) .. py:method:: new_operands(arg0, arg1, **kw) .. py:method:: reinitialize(**kw) .. py:method:: require_first_order(*args, **kw) Require expression to be maximally first order in specified operators. .. py:method:: require_linearity(*args, **kw) Require expression to be linear in specified variables. .. py:method:: split(*vars) Split into expressions containing and not containing specified operands/operators. .. py:method:: sym_diff(var) Symbolically differentiate with respect to specified operand. .. py:property:: base .. py:attribute:: name :value: 'Add' .. py:class:: CrossProduct(arg0, arg1, out=None, **kw) Cross product on two 3D vector fields. .. py:method:: GammaCoord(A_tensorsig, B_tensorsig, C_tensorsig) .. py:method:: new_operands(arg0, arg1, **kw) .. py:method:: operate_left_handed(out) .. py:method:: operate_right_handed(out) .. py:attribute:: arg0_ghost_broadcaster .. py:attribute:: arg1_ghost_broadcaster .. py:attribute:: domain .. py:attribute:: dtype .. py:attribute:: name :value: 'Cross' .. py:attribute:: tensorsig .. py:class:: DotProduct(arg0, arg1, indices=(-1, 0), out=None, **kw) Base class for deferred operations on data. :Parameters: * **\*args** (*Operands*) -- Operands. Number must match class attribute `arity`, if present. * **out** (*data, optional*) -- Output data object. If not specified, a new object will be used. .. rubric:: Notes Operators are stacked (i.e. provided as arguments to other operators) to construct trees that represent compound expressions. Nodes are evaluated by first recursively evaluating their subtrees, and then calling the `operate` method. .. py:method:: GammaCoord(A_tensorsig, B_tensorsig, C_tensorsig) .. py:method:: get_einsum_path(arg0_data, arg1_data) .. py:method:: new_operands(arg0, arg1, **kw) .. py:method:: operate(out) Perform operation. .. py:attribute:: arg0_ghost_broadcaster .. py:attribute:: arg1_ghost_broadcaster .. py:attribute:: domain .. py:attribute:: dtype .. py:attribute:: einsum_path :value: None .. py:attribute:: einsum_str .. py:attribute:: gamma_args .. py:attribute:: indices .. py:attribute:: name :value: 'Dot' .. py:attribute:: ncc_method :value: 'dot_product_ncc' .. py:attribute:: tensorsig .. py:class:: Multiply(*args, out=None) Multiplication operator. .. py:method:: GammaCoord(A_tensorsig, B_tensorsig, C_tensorsig) .. py:method:: new_operands(arg0, arg1, **kw) .. py:attribute:: name :value: 'Mul'