DG Discretizations and related services ======================================= .. module:: hedge.discretization .. class:: Discretization .. method:: Discretization.close() .. method:: Discretization.add_instrumentation(mgr) .. method:: Discretization.is_boundary_tag_nonempty(tag) .. method:: Discretization.all_debug_flags .. automethod:: Discretization.noninteractive_debug_flags .. _vector-kinds: Vector Kinds ------------ When computing on GPU hardware, the :class:`Discretization` operates on fields that are not represented by :mod:`numpy` arrays. Vector kinds make this explicit. Every discretization is guaranteed to support converting its preferred vector kind, given by :attr:`Discretization.compute_kind`, to the kind `"numpy"`. .. attribute:: Discretization.compute_kind The array kind that this discretization can evaluate operators on. .. method:: Discretization.convert_volume(field, kind) .. method:: Discretization.convert_boundary(field, tag, kind) Vector Creation --------------- .. method:: Discretization.volume_empty(shape=(), dtype=None, kind=None) .. method:: Discretization.volume_zeros(shape=(), dtype=None, kind=None) .. method:: Discretization.interpolate_volume_function(f, dtype=None, kind=None) .. method:: Discretization.boundary_empty(tag, shape=(), dtype=None, kind=None) .. method:: Discretization.boundary_zeros(tag, shape=(), dtype=None, kind=None) .. method:: Discretization.interpolate_boundary_function(f, tag, dtype=None, kind=None) .. method:: Discretization.boundary_normals(tag, dtype=None, kind=None) Vector Conversion ----------------- .. method:: Discretization.volumize_boundary_field(bfield, tag, kind=None) .. method:: Discretization.boundarize_boundary_field(bfield, tag, kind=None) Vector Reductions ----------------- .. method:: Discretization.nodewise_dot_product(a, b) .. method:: Discretization.mesh_volume() .. method:: Discretization.integral(volume_vector) .. method:: Discretization.norm(volume_vector, p=2) .. method:: Discretization.inner_product(a, b) Miscellanea ----------- .. method:: Discretization.dt_factor(max_system_ev, stepper_class, *stepper_args) .. method:: Discretization.get_point_evaluator(point) Compilation of :ref:`operator templates ` ----------------------------------------------------- .. method:: Discretization.compile(optemplate, post_bind_mapper=lambda x: x) .. method:: Discretization.add_function(name, func) Projection between :class:`Discretization` instances ---------------------------------------------------- .. class:: Projector(from_discr, to_discr) .. method:: __call__(self, from_vec) Filtering --------- .. autoclass:: ExponentialFilterResponseFunction :members: __init__ .. class:: Filter .. automethod:: __init__