Source code for firedrake.slope_limiter.limiter
from abc import ABCMeta, abstractmethod
__all__ = ("Limiter",)
[docs]
class Limiter(object, metaclass=ABCMeta):
@abstractmethod
def __init__(self, space):
"""
Abstract Limiter class for all limiters to implement its methods.
:param space: FunctionSpace instance
"""
pass
[docs]
@abstractmethod
def apply(self, field):
""" Re-computes centroids and applies limiter to given field """
pass
[docs]
@abstractmethod
def apply_limiter(self, field):
""" Only applies limiting loop on the given field """
pass
[docs]
@abstractmethod
def compute_bounds(self, field):
""" Only computes min and max bounds of neighbouring cells """
pass