zoomy_core.transformation.to_ufl module#
Module zoomy_core.transformation.to_ufl.
- class zoomy_core.transformation.to_ufl.UFLRuntimeModel(model, module=None, printer=None, kernel=None)#
Bases:
NumpyRuntimeModelUFLRuntimeModel. (class).
- Parameters:
model (Model) –
module (Optional[Dict[str, Callable]]) –
printer (Optional[str]) –
- printer = None#
- use_cse = True#
- module = {'Abs': <built-in function abs>, 'E': ufl.e, 'Heaviside': <function UFLRuntimeModel.<lambda>>, 'ImmutableDenseMatrix': <function UFLRuntimeModel.<lambda>>, 'Max': <function UFLRuntimeModel.<lambda>>, 'Min': <function UFLRuntimeModel.<lambda>>, 'Piecewise': ufl.conditional, '_ZdGrad': <function _zd_grad_resolver>, '_ZoomyVector': <function UFLRuntimeModel.<lambda>>, 'abs': <built-in function abs>, 'acos': ufl.acos, 'array': ufl.as_vector, 'asin': ufl.asin, 'atan': ufl.atan, 'atan2': ufl.atan2, 'conditional': <function _ufl_conditional>, 'cos': ufl.cos, 'cosh': ufl.cosh, 'cross': ufl.cross, 'curl': ufl.curl, 'det': ufl.det, 'div': ufl.div, 'dot': ufl.dot, 'exp': ufl.exp, 'grad': ufl.grad, 'inner': ufl.inner, 'inv': ufl.inv, 'ln': ufl.ln, 'max': <function UFLRuntimeModel.<lambda>>, 'min': <function UFLRuntimeModel.<lambda>>, 'ones_like': <function UFLRuntimeModel.<lambda>>, 'outer': ufl.outer, 'pi': ufl.pi, 'pow': <function UFLRuntimeModel.<lambda>>, 'sign': ufl.sign, 'signum': ufl.sign, 'sin': ufl.sin, 'sinh': ufl.sinh, 'sqrt': ufl.sqrt, 'squeeze': <function UFLRuntimeModel.<lambda>>, 'sum': <function UFLRuntimeModel.<lambda>>, 'tan': ufl.tan, 'tanh': ufl.tanh, 'tr': ufl.tr, 'transpose': ufl.transpose, 'zeros_like': <function UFLRuntimeModel.<lambda>>}#
- class zoomy_core.transformation.to_ufl.UFLRuntimeSymbolic(symbolic_obj, module=None, printer=None)#
Bases:
UFLRuntimeModel,NumpyRuntimeSymbolicUFL runtime for symbolic registrars (e.g.
Numerics).The Firedrake counterpart to
NumpyRuntimeSymbolic. It walkssymbolic_obj.functionsand lambdifies each registered symbolic function (numerical_flux,numerical_fluctuations,local_max_abs_eigenvalue, …) through the UFL module dict, so calling, e.g.,runtime.numerical_flux(qL, qR, auxL, auxR, p, n)returns a UFL expression suitable for direct assembly in a Firedrake form.The MRO is
UFLRuntimeSymbolic → UFLRuntimeModel → NumpyRuntimeSymbolic → NumpyRuntimeModel;__init__is inherited fromNumpyRuntimeSymbolic(no other class defines one), andmodule/printer/_vectorize_expression/_lambdify_functioncome fromUFLRuntimeModel.- Parameters:
module (Optional[Dict[str, Callable]]) –
printer (Optional[str]) –